org.apache.http.NoHttpResponseException: 目标服务器未响应

3
我正在使用以下代码将图像发布到服务器,但它给出了以下错误:
org.apache.http.NoHttpResponseException:目标服务器未响应
我不知道问题是来自服务器方面还是我的代码方面。
有人可以帮我解决这个问题吗?
代码:
 protected Long doInBackground(URL... arg0) {

            CustomMultiPartEntity multipartContent = new CustomMultiPartEntity(
                    new ProgressListener() {
                        @Override
                        public void transferred(long num) {
                            publishProgress((int) ((num / (float) totalSize) * 100));
                        }
                    });
            try {
                for (int i = Constants.IMAGE_SELECTION; i < al_image_paths
                        .size(); i++) {
                    count = i + 1;
                    progressDialog.setProgress(0);

                    // String url=DataUrl.hostId+"/addpost/postImageOrVideo?";
                    HttpClient httpClient = new DefaultHttpClient();
                    HttpContext localContext = new BasicHttpContext();
                    HttpPost httpPost = new HttpPost(image_upload);

                    Log.e("strImagePath.... before uploading",
                            al_image_paths.get(i));

                    multipartContent.addPart("image", new FileBody(new File(
                            al_image_paths.get(i))));
                    multipartContent.addPart("sellleadid",
                            new StringBody(pref.getString("sellerID", "")));
                    multipartContent.addPart("action", new StringBody(
                            "Send Used Car Images"));
                    multipartContent.addPart("app_id", new StringBody(Constants.DEVICE_ID));

                    totalSize = multipartContent.getContentLength();

                    httpPost.setEntity(multipartContent);

                    HttpResponse response = httpClient.execute(httpPost,
                            localContext);
                    String serverResponse = EntityUtils.toString(response
                            .getEntity());
                    Log.e("serverResponse image", "<> " + serverResponse);

                    JSONObject object = new JSONObject(serverResponse);

                    if (object.getString("status").equals("200")) {
                        selectedImageIds.add(object.getString("imageid"));
                        selectedUrls.add(object.getString("url"));
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }`enter code here`

抛出 NoHttpResponseException 的是哪一行? - A.Vynohradov
1个回答

1

请确保你的清单文件中有android.permission.INTERNET权限。

同时检查 - Apache HttpClient 临时错误:NoHttpResponseException

编辑:

java.io.IOException
 +- org.apache.commons.httpclient.NoHttpResponseException

在某些情况下,通常是在负载较重时,Web服务器可能能够接收请求但无法处理它们。缺乏足够的资源,如工作线程,就是一个很好的例子。这可能会导致服务器在不给出任何响应的情况下断开与客户端的连接。当HttpClient遇到这种情况时,会抛出NoHttpResponseException异常。在大多数情况下,安全起见,可以重试因NoHttpResponseException失败的方法。

我拥有互联网权限。 - veerendra
检查我的更新。这样你就知道异常可能发生的原因和位置了。 - My God
我使用 org.apache.http.client.methods.HttpPost,如何自定义异常处理程序?谢谢。 - Ron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接