2012-04-12 21:24 Android 开发中发送http请求
大家都知道http请求包括get方式和post方式。
get方式会将发送的参数信息显示在浏览器的地址栏中,处于一点安全以及地址的简洁考虑,对于参数较多大多选用post请求。尤其是当get传送的参数长度大于浏览器可接受的最大长度时(见本文最后),只能选择post方式传输。
android中http post请求大致分为以下四个部分
1、在AndroidManifest.xml中添加对网络访问权限的设置。允许应用进行网络连接
Xml代码
- <uses-permission android:name="android.permission.INTERNET" />
2、新建HttpClient 和 HttpPost对象执行post请求
Java代码
- HttpClient client = new DefaultHttpClient();
- HttpPost post = new HttpPost(urlAddress);
3、配置post请求的参数
Java代码
- List<NameValuePair> parameters = new ArrayList<NameValuePair>();
- parameters.add(new BasicNameValuePair("parameter1", "parameterValue1"));
- parameters.add(new BasicNameValuePair("parameter2", "parameterValue2"));
- post.setEntity(new UrlEncodedFormEntity(parameters));
4、发送post请求
Java代码
- HttpResponse response = client.execute(post);
返回的HttpResponse对象包含了返回的网页所有信息。包括状态、网页内容、网页状态等,用response.getEntity();获得网页内容
详见http://developers.androidcn.com/reference/org/apache/http/HttpResponse.html
android中http get请求大致分为三个部分,少了上面的第三部。第二步修改为
Java代码
- HttpClient client = new DefaultHttpClient();
- HttpGet get = new HttpGet(urlAddress);
参考:http://www.wikihow.com/Execute-HTTP-POST-Requests-in-Android
附:各个浏览器get最大长度
各浏览器HTTP Get请求URL最大长度并不相同,几类常用浏览器最大长度及超过最大长度后提交情况如下:
IE6.0 :url最大长度2083个字符,超过最大长度后无法提交。
IE7.0 :url最大长度2083个字符,超过最大长度后仍然能提交,但是只能传过去2083个字符。
firefox 3.0.3 :url最大长度7764个字符,超过最大长度后无法提交。
Opera 9.52 :url最大长度7648个字符,超过最大长度后无法提交。
Google Chrome 2.0.168 :url最大长度7713个字符,超过最大长度后无法提交。
参考:http://blog.163.com/da2qia1ku5@126/blog/static/35485935201010295035495/