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

需求:用户登录(name:用户名,pwd:密码)

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

  1. public String getResultForHttpGet(String name,String pwd) throws ClientProtocolException, IOException{
  2. //服务器  :服务器项目  :servlet名称
  3. String path="http://192.168.5.21:8080/test/test";
  4. String uri=path+"?name="+name+"&pwd="+pwd;
  5. //name:服务器端的用户名,pwd:服务器端的密码
  6. //注意字符串连接时不能带空格
  7. String result="";
  8. HttpGet httpGet=new HttpGet(uri);//编者按:与HttpPost区别所在,这里是将参数在地址中传递
  9. HttpResponse response=new DefaultHttpClient().execute(httpGet);
  10. if(response.getStatusLine().getStatusCode()==200){
  11. HttpEntity entity=response.getEntity();
  12. result=EntityUtils.toString(entity, HTTP.UTF_8);
  13. }
  14. return result;
  15. }

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

  1. public String getReultForHttpPost(String name,String pwd) throws ClientProtocolException, IOException{
  2. //服务器  :服务器项目  :servlet名称
  3. String path="http://192.168.5.21:8080/test/test";
  4. HttpPost httpPost=new HttpPost(path);
  5. List<NameValuePair>list=new ArrayList<NameValuePair>();
  6. list.add(new BasicNameValuePair("name", name));
  7. list.add(new BasicNameValuePair("pwd", pwd));
  8. httpPost.setEntity(new UrlEncodedFormEntity(list,HTTP.UTF_8));//编者按:与HttpGet区别所在,这里是将参数用List传递
  9. String result="";
  10. HttpResponse response=new DefaultHttpClient().execute(httpPost);
  11. if(response.getStatusLine().getStatusCode()==200){
  12. HttpEntity entity=response.getEntity();
  13. result=EntityUtils.toString(entity, HTTP.UTF_8);
  14. }
  15. return result;
  16. }

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

由此我们可知,HttpGet和HttpPost的区别在于前者是将参数在地址中传递,后者是将参数用List传递。

上一篇:win7系统用sqlyog连接不上docker启动的mysql数据库


下一篇:SQLyog连接报错 Error No.2058 Plugin caching_sha2_password could not be loaded