Android中HTTP通信


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请求的两种方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值