HttpUrlconnection.getOutPutStream和getInputStream在Android 2G / 3G / 4G中花费时间

时间:2017-08-18 07:13:01

标签: android httpurlconnection

我正在研究android应用程序,我有登录帖子请求在这个请求中我需要发送params in body我在wifi中使用httpurlconnection它很快但是在移动网络中,第一个请求需要更多时间我在调试代码时花了更多的时间做httpurlconnection.getOutputStream和getinputstream它是标准行为还是我可以优化它

代码:

URL url = new URL("http://sampleurl.com");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);

List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("firstParam", paramValue1));
params.add(new BasicNameValuePair("secondParam", paramValue2));
params.add(new BasicNameValuePair("thirdParam", paramValue3));

OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
        new OutputStreamWriter(os, "UTF-8"));
writer.write(getQuery(params));
writer.flush();
writer.close();
os.close();

conn.connect();
private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException
{
    StringBuilder result = new StringBuilder();
    boolean first = true;

    for (NameValuePair pair : params)
    {
        if (first)
            first = false;
        else
            result.append("&");

        result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
        result.append("=");
        result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
    }

    return result.toString();
}

0 个答案:

没有答案