導航:首頁 > 操作系統 > 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相關的資料

熱點內容
資料庫查詢系統源碼 瀏覽:614
php5314 瀏覽:354
完美國際安裝到哪個文件夾 瀏覽:666
什麼app可以掃一掃做題 瀏覽:537
程序員編碼論壇 瀏覽:923
淘點是什麼app 瀏覽:658
中國高等植物pdf 瀏覽:453
51單片機時間 瀏覽:181
後台如何獲取伺服器ip 瀏覽:264
單片機流水燈程序c語言 瀏覽:232
程序員第二職業掙錢 瀏覽:237
運行里怎麼輸入伺服器路徑 瀏覽:837
pythonstepwise 瀏覽:508
劉一男詞彙速記指南pdf 瀏覽:61
php認證級別 瀏覽:366
方舟編譯啥時候推送 瀏覽:1009
php手機驗證碼生成 瀏覽:674
哲學思維pdf 瀏覽:14
凌達壓縮機有限公司招聘 瀏覽:533
weblogic命令部署 瀏覽:35