导航:首页 > 操作系统 > androidhttphelper

androidhttphelper

发布时间:2022-11-17 05:56:29

⑴ SocketException:recvfromfailed:ECONNRESET是什么意思

package com.ucaimalls.util;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import android.util.Log;

/**
* 网络连接类
*/
public class HttpHelper
{
public static final int TIME_OUT_MILL = 10000;// 超时毫秒数
/**
* HttpURLConnection 请求方式,直接返回字符串数据
*/
public static String getHttpUrlConnData(String url) throws Exception
{

URL realUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setConnectTimeout(TIME_OUT_MILL);
conn.setReadTimeout(TIME_OUT_MILL);
InputStream is = conn.getInputStream();
ByteArrayOutputStream dis = new ByteArrayOutputStream();
int realRead = 0;
byte[] buff = new byte[1024];
while ((realRead = is.read(buff )) != -1)
{
dis.write(buff,0,realRead);
}
String data = new String(dis.toByteArray(), "UTF-8").trim();
// System.out.println(data);
if (dis != null)
{
dis.close();
}
if(conn!=null)
{
conn.disconnect();//断开连接---问题产生的原因了
}

return data;

}

}
ok, the answer was that it's the server's fault - it had to close the connection after each request .
it might be that android keeps a pool of connections and use the old one or something like that .
anyway , now it works.
EDIT: according to the API of HttpURLConnection , this can be solved on the client side too:
The input and output streams returned by this class are not buffered. Most callers should wrap the returned streams with BufferedInputStream or BufferedOutputStream. Callers that do only bulk reads or writes may omit buffering. When transferring large amounts of data to or from a server, use streams to limit how much data is in memory at once. Unless you need the entire body to be in memory at once, process it as a stream (rather than storing the complete body as a single byte array or string).
To rece latency, this class may reuse the same underlying Socket for multiple request/response pairs. As a result, HTTP connections may be held open longer than necessary. Calls to disconnect() may return the socket to a pool of connected sockets. This behavior can be disabled by setting the http.keepAlive system property to false before issuing any HTTP requests. The http.maxConnections property may be used to control how many idle connections to each server will be held.

⑵ android怎么import httphelper

customer asked the owner, "How come this guy is $5,000? That's so expensive for

阅读全文

与androidhttphelper相关的资料

热点内容
2g3g算法 浏览:193
python可以在net开发 浏览:921
编程里的hr啥意思 浏览:398
上海php兼职 浏览:715
顺丰app如何验证学生 浏览:367
服务器mac地址过滤器 浏览:928
程序员一年内被开除 浏览:452
福建文档课件加密企业 浏览:776
appstore美国的界面怎么看呀 浏览:520
hlt单片机 浏览:311
CA的命令 浏览:680
安卓怎么传王者应用给苹果 浏览:909
aws云服务器自建 浏览:827
如何更换服务器登录网站 浏览:688
java修改ip地址 浏览:825
java操作cookie 浏览:684
ping命令2个ip 浏览:220
怎么御载软件商店加密应用 浏览:806
小周服务器为什么进不去 浏览:300
游戏制作用什么编译语言 浏览:641