小编sta*_*bra的帖子

Android 中的 HttpURLConnection 工作正常,但 OkHttp 在 Kitkat 上显示“网络无法访问”

我对这个特定网站有问题:https : //tastedive.com/read/api

如果我使用 HttpURLConnection 执行 HTTP 请求,我会得到一个正常的 HTML 响应(在 Android 上,此代码需要位于一个单独的线程中,并且还进行了所有必要的尝试和捕获):

    StringBuilder result = new StringBuilder();
    URL url = new URL("https://tastedive.com/read/api");
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setRequestMethod("GET");
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line;
    while ((line = rd.readLine()) != null) {
        result.append(line);
    }
    rd.close();
    System.out.println(result.toString());  // shows normal HTML response
Run Code Online (Sandbox Code Playgroud)

但是如果我用 OkHttp 来做,用这个代码......

    OkHttpClient client = new OkHttpClient();
    Request request = new Request.Builder()
            .url("https://tastedive.com/read/api")
            .build();
    client.newCall(request).enqueue(new okhttp3.Callback() {
        @Override
        public void onFailure(okhttp3.Call call, IOException e) {
            Log.d("MY", …
Run Code Online (Sandbox Code Playgroud)

android httpurlconnection okhttp android-4.4-kitkat

2
推荐指数
1
解决办法
2200
查看次数