I get error when I try to post to server:
05-05 12:37:05.824: W/System.err(20610): org.apache.http.NoHttpResponseException: The target server failed to respond
05-05 12:37:05.824: W/System.err(20610): at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:85)
05-05 12:37:05.824: W/System.err(20610): at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)
05-05 12:37:05.824: W/System.err(20610): at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:180)
05-05 12:37:05.824: W/System.err(20610): at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)
05-05 12:37:05.824: W/System.err(20610): at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)
05-05 12:37:05.824: W/System.err(20610): at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)
05-05 12:37:05.824: W/System.err(20610): at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)
05-05 12:37:05.824: W/System.err(20610): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:428)
05-05 12:37:05.824: W/System.err(20610): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:670)
05-05 12:37:05.834: W/System.err(20610): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509)
05-05 12:37:05.834: W/System.err(20610): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
05-05 12:37:05.834: W/System.err(20610): at
05-05 12:37:05.834: W/System.err(20610): at
05-05 12:37:05.834: W/System.err(20610): at
05-05 12:37:05.834: W/System.err(20610): at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-05 12:37:05.834: W/System.err(20610): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
05-05 12:37:05.834: W/System.err(20610): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
05-05 12:37:05.834: W/System.err(20610): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
05-05 12:37:05.834: W/System.err(20610): at java.lang.Thread.run(Thread.java:856)
this is code my metod:
private HttpResponse connectAndDownload() {
try {
String postBody;
if (requestItem == null) {
postBody = CollectBasicData.generateJson().toString();
} else {
postBody = requestItem;
}
HttpParams httpParams = new BasicHttpParams();
HttpProtocolParams.setVersion(httpParams, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(httpParams, HTTP.UTF_8);
final DefaultHttpClient client = new DefaultHttpClient(httpParams);
final HttpUriRequest httpUriRequest;
if(requestItem=="METHOD_GET"){
HttpGet httpget= new HttpGet(url);
if(DEBUG_VERSION.IS_DEBUG){
Log.v(" Download API", "url: " + url);
Log.v("DownloadApi", "postBody: " + postBody);
}
httpget.setHeader("Accept", "application/json");
httpget.setHeader("Content-type", "application/json");
httpUriRequest = httpget;
}
else{
HttpPost httppost = new HttpPost(url);
StringEntity se = new StringEntity(postBody, HTTP.UTF_8);
if(DEBUG_VERSION.IS_DEBUG){
Log.v(" Download API", "url: " + url);
Log.v("DownloadApi", "postBody: " + postBody);
}
httppost.setHeader("Accept", "application/json");
httppost.setHeader("Content-type", "application/json");
httppost.setEntity(se);
httpUriRequest = httppost;
}
HttpConnectionParams.setConnectionTimeout(httpUriRequest.getParams(), TIMEOUT);
HttpConnectionParams.setSoTimeout(httpUriRequest.getParams(), TIMEOUT);
httpUriRequest.addHeader(
"Authorization",
"Basic "
+ Base64.encodeToString((CollectBasicData.getUserName() + ":" + CollectBasicData
.getPassword()).getBytes(), Base64.NO_WRAP));
HttpResponse response = client.execute(httpUriRequest);
return response;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
I try solutions from: HttpClient on Android : NoHttpResponseException through UMTS/3G and http://code.google.com/p/android/issues/detail?id=13117 but no effects. This error show when I try post to service using 3G. When I use WIFI everything is ok.