android网络编程上传xml,Android 网络编程之 HttpURLConnection

Android 网络编程之 HttpURLConnection

Android,网络编程,

HttpURLConnection 是 Android 平台上常用的网络编程的工具类,相比 HttpClient,HttpURLConnection 得到了 Android 官方很好的支持和推荐。下面是一些简单的介绍和知识的整理。

这是一个简单的使用 HttpURLConnection 进行 GET 请求的代码。

URL url = new URL("http://tech.binkery.com");

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setConnectTimeout(6*1000);

if (conn.getResponseCode() != 200){

InputStream is = conn.getInputStream();

// do somethings here

}

conn.disconnect();

POST 请求:

URL url = new URL("http://tech.binkery.com");

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setDoOutput(true);

conn.setRequestMethod("POST");

conn.setConnectTimeout(6*1000);

OutputStream out = conn.getOutputStream();

// like as : out.write(byte[] bytes);

out.close();

if (conn.getResponseCode() != 200){

InputStream is = conn.getInputStream();

// do somethings here

}

conn.disconnect();

需要注意的点:

HttpURLConnection.setRequestProperty(String key,String value) 用来设置 HTTP 请求的头,也就是 HTTP Request Header .

HttpURLConnection.setRequestMethod(String) 用来设置 HTTP 请求的发送方式,不设置默认是 GET , 一般使用全大写的 "GET" 或 "POST" 。

HttpURLConnection.setConnectTimeout(long time) 设置超时是很有必要的,单位是毫秒。

HttpURLConnection.getResponseCode() 获取返回的 HTTP 状态码,多一层判断,多一层保护。200 表示正常的,其他类似 404 , 503 之类的,可以根据业务逻辑去判断做不做处理。

一个空格引发的血案。在通过 HttpURLConnection.setRequestProperty(String key,String value); 给请求设置属性的时候,value 里的空格会被转义成 '\s',所以,你可能需要这样子写:

conn.setRequestProperty("Content-Type", ("application/xml; charset=utf-8").replaceAll("\s", ""));

http://stackoverflow.com/questions/15030201/issues-with-httpurlconnection-with-post-on-android-2-2?rq=1

在使用 POST 的时候,需要发送的数据都被写入到内存里,然后再发送出去(在close()的时候发送),如果发送的数据太多,很容易占用太多的内存,造成溢出。所以,在明确知道数据的长度的时候,使用 HttpURLConnection.setFixedLengthStreamingMode(int) 设置流的长度,或者不明确知道数据的长度的时候,使用 HttpURLConnection.setChunkedStreamingMode(int) 设置块的大小,这样就能有效的避免的内存溢出了。

相关文章

- EOF -

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动。

转载请注明:文章转载自 Binkery 技术博客 [https://binkery.com]

本文标题: Android 网络编程之 HttpURLConnection

本文地址:https://binkery.com/archives/422.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值