android post数据到服务器错误

android post数据到服务器异常项目中获取服务器信息时候,需要把用户的id和一些数据post到服务器,然后才能

android post数据到服务器异常
项目中获取服务器信息时候,需要把用户的id和一些数据post到服务器,然后才能获取到服务器返回信息,post的方法如下。
public String postDataToWeb(String url,Map<String, String> data){
HttpClient httpClient=new DefaultHttpClient();
HttpPost httpPost=new HttpPost(url);
httpClient.getParams().setParameter(
CoreConnectionPNames.CONNECTION_TIMEOUT, 7000);
List<BasicNameValuePair> lists=new ArrayList<BasicNameValuePair>();
for(Map.Entry<String, String> entry : data.entrySet()){
BasicNameValuePair nameValuePairs = new BasicNameValuePair(entry.getKey(), entry.getValue());
lists.add(nameValuePairs);
}
try {
HttpEntity entity=new UrlEncodedFormEntity(lists, "utf-8");
httpPost.setEntity(entity);
HttpResponse response=httpClient.execute(httpPost);
if(response.getStatusLine().getStatusCode()==200){
String s=EntityUtils.toString(response.getEntity());
return s;
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}

可是有时候多次点击获取信息的时候,会报异常,
08-19 10:58:07.160: W/System.err(21565): java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)
08-19 10:58:07.160: W/System.err(21565): at libcore.io.IoBridge.maybeThrowAfterRecvfrom(IoBridge.java:552)
08-19 10:58:07.160: W/System.err(21565): at libcore.io.IoBridge.recvfrom(IoBridge.java:516)
08-19 10:58:07.160: W/System.err(21565): at java.net.PlainSocketImpl.read(PlainSocketImpl.java:488)
08-19 10:58:07.165: W/System.err(21565): at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)
08-19 10:58:07.165: W/System.err(21565): at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:240)
08-19 10:58:07.165: W/System.err(21565): at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103)
08-19 10:58:07.165: W/System.err(21565): at org.apache.http.impl.io.AbstractSessionInputBuffer.read(AbstractSessionInputBuffer.java:134)
08-19 10:58:07.170: W/System.err(21565): at org.apache.http.impl.io.IdentityInputStream.read(IdentityInputStream.java:86)
08-19 10:58:07.170: W/System.err(21565): at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:159)


08-19 10:58:07.170: W/System.err(21565): at java.io.InputStreamReader.read(InputStreamReader.java:244)
08-19 10:58:07.175: W/System.err(21565): at java.io.Reader.read(Reader.java:145)
08-19 10:58:07.175: W/System.err(21565): at org.apache.http.util.EntityUtils.toString(EntityUtils.java:135)
08-19 10:58:07.175: W/System.err(21565): at org.apache.http.util.EntityUtils.toString(EntityUtils.java:146)
08-19 10:58:07.175: W/System.err(21565): at com.astore.app.net.HttpService.postDataToWeb(HttpService.java:87)
08-19 10:58:07.175: W/System.err(21565): at com.astore.app.service.UserService.getPingjia(UserService.java:226)
08-19 10:58:07.180: W/System.err(21565): at com.astore.app.service.UserService.onHandleIntent(UserService.java:138)
08-19 10:58:07.180: W/System.err(21565): at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
08-19 10:58:07.180: W/System.err(21565): at android.os.Handler.dispatchMessage(Handler.java:99)
08-19 10:58:07.185: W/System.err(21565): at android.os.Looper.loop(Looper.java:137)
08-19 10:58:07.185: W/System.err(21565): at android.os.HandlerThread.run(HandlerThread.java:60)
08-19 10:58:07.185: W/System.err(21565): Caused by: libcore.io.ErrnoException: recvfrom failed: ECONNRESET (Connection reset by peer)
08-19 10:58:07.190: W/System.err(21565): at libcore.io.Posix.recvfromBytes(Native Method)
08-19 10:58:07.190: W/System.err(21565): at libcore.io.Posix.recvfrom(Posix.java:131)
08-19 10:58:07.190: W/System.err(21565): at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:164)
08-19 10:58:07.195: W/System.err(21565): at libcore.io.IoBridge.recvfrom(IoBridge.java:513)
08-19 10:58:07.195: W/System.err(21565): ... 18 more
网上找了下都说的不太清楚,求大神赐教!!报错的代码是String s=EntityUtils.toString(response.getEntity());这行!!!

android 服务器 post 异常
[解决办法]
自定义一个方法来代替String s=EntityUtils.toString(response.getEntity()); 这句


String str = getContent(httpResponse);

方法:
public static String getContent(HttpResponse response) {

BufferedReader in = null;
String page = "";
try {
in = new BufferedReader(new InputStreamReader(response.getEntity()
.getContent()));
StringBuffer sb = new StringBuffer("");
String line = "";
while ((line = in.readLine()) != null) {
sb.append(line);
}
page = sb.toString();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (in != null)
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return page;
}
我没遇到过你那样的问题,不过你可以试试这个方法