有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

同样的代码在java中工作,但在安卓中不工作

try {
     //link below might contain offensive advertisemensts
     url = new URL("http://wasabisyrup.com/archives/GWB5lyn4FM8");
     urlConnection = (HttpURLConnection) url.openConnection();
     int c = urlConnection.getResponseCode();
.
.
.

这段代码在JavaIDE上编译时给出响应代码200,但在安卓上运行asynctask时抛出403错误。这让我快发疯了。请帮忙

安卓代码示例:

public class MainActivity extends Activity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button = findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // Code here executes on main thread after user presses button
            new DownloadFilesTask().execute();
        }
    });


}

private class DownloadFilesTask extends AsyncTask<Void, Void, Void> {
    protected Void doInBackground(Void... params) {

        CookieManager cookieManager = new CookieManager();
        CookieHandler.setDefault(cookieManager);
        URL url;
        HttpURLConnection urlConnection = null;
        try {
            url = new URL("http://wasabisyrup.com/archives/GWB5lyn4FM8");
            urlConnection = (HttpURLConnection) url.openConnection();
            int c = urlConnection.getResponseCode();
            System.out.println(c);
            InputStream in = new BufferedInputStream(urlConnection.getInputStream());

        }catch(Exception e){
            e.printStackTrace();
        } finally {
            urlConnection.disconnect();
        }
        return null;
    }

    protected void onProgressUpdate(Integer... progress) {
        //setProgressPercent(progress[0]);
    }

    protected void onPostExecute() {

    }
}

我得到的输出是:

I/System.out: 403 W/System.err: java.io.FileNotFoundException: http://wasabisyrup.com/archives/GWB5lyn4FM8 at com.安卓.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:238) W/System.err: at ml.melun.junhea.web_test.MainActivity$DownloadFilesTask.doInBackground(MainActivity.java:47) at ml.melun.junhea.web_test.MainActivity$DownloadFilesTask.doInBackground(MainActivity.java:35) at 安卓.os.AsyncTask$2.call(AsyncTask.java:295) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at 安卓.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818)


共 (1) 个答案

  1. # 1 楼答案

    使用代理并检查每种情况下发送的内容。您可能会发现一些额外的头文件可能会导致问题,具体取决于后端处理它们的方式