现在的位置: 首页 > 综合 > 正文

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

2013年05月15日 ⁄ 综合 ⁄ 共 1589字 ⁄ 字号 评论关闭

先看下面一篇文章:

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

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

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

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报头中传递

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传递。

抱歉!评论已关闭.