您的位置:首页 > 理论基础 > 计算机网络

Android中使用HttpGet和HttpPost访问HTTP资源和区别

2013-06-09 09:59 771 查看
需求:用户登录(name:用户名,pwd:密码)

(一)HttpGet :doGet()方法

//doGet():将参数的键值对附加在url后面来传递

[java] view
plaincopy

public String getResultForHttpGet(String name,String pwd) throws ClientProtocolException, IOException{

//服务器 :服务器项目 :servlet名称

String path="http://192.168.5.21:8080/test/test";

String uri=path+"?name="+name+"&pwd="+pwd;

//name:服务器端的用户名,pwd:服务器端的密码

//注意字符串连接时不能带空格



String result="";



HttpGet httpGet=new HttpGet(uri);//编者按:与HttpPost区别所在,这里是将参数在地址中传递

HttpResponse response=new DefaultHttpClient().execute(httpGet);

if(response.getStatusLine().getStatusCode()==200){

HttpEntity entity=response.getEntity();

result=EntityUtils.toString(entity, HTTP.UTF_8);

}

return result;

}

(二)HttpPost :doPost()方法

//doPost():将参数打包到http报头中传递

[java] view
plaincopy

public String getReultForHttpPost(String name,String pwd) throws ClientProtocolException, IOException{

//服务器 :服务器项目 :servlet名称

String path="http://192.168.5.21:8080/test/test";

HttpPost httpPost=new HttpPost(path);

List<NameValuePair>list=new ArrayList<NameValuePair>();

list.add(new BasicNameValuePair("name", name));

list.add(new BasicNameValuePair("pwd", pwd));

httpPost.setEntity(new UrlEncodedFormEntity(list,HTTP.UTF_8));//编者按:与HttpGet区别所在,这里是将参数用List传递



String result="";



HttpResponse response=new DefaultHttpClient().execute(httpPost);

if(response.getStatusLine().getStatusCode()==200){

HttpEntity entity=response.getEntity();

result=EntityUtils.toString(entity, HTTP.UTF_8);

}

return result;

}

-------------------------------------------------------------------------------------------------------

由此我们可知,HttpGet和HttpPost的区别在于前者是将参数在地址中传递,后者是将参数用List传递。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: