Android studio 我得到;重定向错误太多“;在更高的android api版本中,同时在android studio中使用jsoup

Android studio 我得到;重定向错误太多“;在更高的android api版本中,同时在android studio中使用jsoup,android-studio,jsoup,Android Studio,Jsoup,我正在用android studio学习jsoup。我在intellij中尝试了以下代码,效果很好。它在api vesrion 19中也可以正常工作,但不适用于更高的api版本 private TextView textView; private static final String TAG = "Main2Activity"; @Override protected void onCreate(Bundle savedInstanceState) {

我正在用android studio学习jsoup。我在intellij中尝试了以下代码,效果很好。它在api vesrion 19中也可以正常工作,但不适用于更高的api版本

    private TextView textView;
    private static final String TAG = "Main2Activity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        textView = findViewById(R.id.textView2);


        getWebsite();


    }


    private void getWebsite() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                final StringBuilder builder = new StringBuilder();

                try {
                    String url = "https://isa.ir/content/3895/";

                    Connection.Response response;

                    response = Jsoup.connect(url)
                            .followRedirects(true)
                            .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 OPR/64.0.3417.150")
                            .execute();

                    Log.d(TAG, "run: " + response.statusCode());
                    Log.d(TAG, "run: " + response.headers().toString());


                        Document doc = response.parse();
                        final Elements text = doc.select(".yw_cnt div:nth-child(2)");
                        Log.d(TAG, "run: " + text.text());
                        for (Element link : text) {
                            builder.append(link.text());
                        }

                } catch (IOException e) {
                    builder.append("Error : ").append(e.getMessage()).append("\n");
                }

                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        textView.setText(builder.toString());
                    }
                });
            }
        }).start();
    }
}
我得到了太多的重定向错误

链接也会在浏览器中变为

在测试时的Logcat中,我在API 19中正确地获得了重定向URL,但在更高的API中,波斯语字符变成了问号,如下图所示????????。 我想我测试了所有与编码相关的东西,但问题仍然存在


如何修复此问题?

尝试以编程方式重定向

设置
followRedirects(false)
并执行它

  • 如果响应状态代码介于301-307之间,则读取重定向位置
  • 然后加载新的url 执行此步骤,直到响应状态代码为OK


    签出示例

    它从不给出OK状态代码。它只是多次重复相同的URL。