1 Android中HTTP简介
HTTP作为Internet中广泛使用的协议,几乎所有的语言都支持HTTP通信,当然android也不例外。在android中,提供了HttpURLConnection、HttpGet、HttpPost来实现对http资源的访问。
2 提交HTTP GET请求与HTTP POST请求
private static final int REQUEST_SUCCESS =200;
privatestatic final int REQUEST_FAIL = 404;
/**
* 发送HttpGet请求
* @param url url地址,该种方式发送HTTP请求时,如果需要传递参数,则通过在url后拼接字符串的方式
* @return 请求的内容
*/
publicString loadUrl(String url) {
Stringcontent = null;
HttpGethttpGet = new HttpGet(url);
try{
HttpResponseresponse = new DefaultHttpClient().execute(httpGet);
intstatusCode = response.getStatusLine().getStatusCode();
if(statusCode == REQUEST_SUCCESS) {
content= EntityUtils.toString(response.getEntity());
}else if (statusCode == REQUEST_FAIL) {
content= "请求失败!";
}
}catch (ClientProtocolException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
returncontent;
}
/**
* 发送HttpPost请求
* @param url url地址
* @param params 参数
* @return 请求内容
*/
publicString loadUrl(String url, HashMap<String, String> params) {
Stringcontent = null;
HttpPosthttpPost = new HttpPost(url);
List<NameValuePair>list = new ArrayList<NameValuePair>();
Iterator<String>iterator = params.keySet().iterator();
while(iterator.hasNext()) {
Stringkey = iterator.next();
list.add(newBasicNameValuePair(key, params.get(key)));
iterator.next();
}
try{
httpPost.setEntity(newUrlEncodedFormEntity(list, HTTP.UTF_8));
HttpResponseresponse = new DefaultHttpClient().execute(httpPost);
intstatusCode = response.getStatusLine().getStatusCode();
if(statusCode == REQUEST_SUCCESS) {
content= EntityUtils.toString(response.getEntity());
}else if (statusCode == REQUEST_FAIL) {
content= "请求失败!";
}
}catch (UnsupportedEncodingException e) {
e.printStackTrace();
}catch (ClientProtocolException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
returncontent;
}
以上提供了两个方法,是java或android中发送HttpGet或HttpPost请求的两种方式。