org.apache.http.NoHttpResponseException:目标服务器响应失败
Posted
技术标签:
【中文标题】org.apache.http.NoHttpResponseException:目标服务器响应失败【英文标题】:org.apache.http.NoHttpResponseException: The target server failed to respond 【发布时间】:2014-07-15 07:25:40 【问题描述】:我正在使用以下代码将图像发布到服务器,但它在下面给出错误
我不明白问题是来自服务器端还是来自我的代码端。
谁能帮我解决这个问题?
代码:
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? 【参考方案1】:确保您在清单文件中拥有android.permission.INTERNET
权限。
还要检查 - Apache HttpClient Interim Error: NoHttpResponseException。
编辑:
java.io.IOException
+- org.apache.commons.httpclient.NoHttpResponseException
在某些情况下,通常是在负载较重时,Web 服务器 可能能够接收请求但无法处理它们。缺乏 工作线程等充足的资源就是一个很好的例子。这可能 导致服务器断开与客户端的连接而不给予 任何回应。 HttpClient 抛出 NoHttpResponseException 时 遇到这样的情况。在大多数情况下,重试一次是安全的 因 NoHttpResponseException 而失败的方法。
来源: http://hc.apache.org/httpclient-3.x/exception-handling.html
【讨论】:
我有上网权限 检查我的更新。所以你知道异常的原因和位置。 我使用org.apache.http.client.methods.HttpPost
,如何自定义异常处理程序?谢谢。以上是关于org.apache.http.NoHttpResponseException:目标服务器响应失败的主要内容,如果未能解决你的问题,请参考以下文章