码迷,mamicode.com
首页 > 移动开发 > 详细

Android Http请求方法汇总

时间:2015-10-29 11:04:36      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:

最近对比了Android 中使用的JDK的HttpURLConnection和Apache的HttpClien访问网络资源,总结了Http协议的相关资料。如下:

JDK的HttpURLConnection:

(1)get请求

public String executeHttpGet(){

       String result = null;

    URL url = null;

    HttpURLConnection connection;

    InputStreamReader in =null;

    try{

        url = new URL("http://10.0.2.2.:8888/data/get/?token=alexzhou");

        connection =(HttpURLConnection)url.openConnection();

        in = new InputStream(connection.getInputStream());

        BufferedReader bufferedReader = new BufferedReader(in);

        StringBuffer str = new StringBuffer();

        String line =null;

        while((line = bufferedReader.readLine()) != null){

           str.append(line);

}

          }catch(Exception e){

           e.printStackTrace();

}finally{

        if(connection != null){

       connection.disconnect();

} if(in != null){

     try{

      in.close();

}catch(IOException e){

  e.printStackTrace();

}

}

}

    return result;

}

(2)post请求

public String executeHttpPost(){

    String result = null;

    URL url =null;

    HttpURLConnection connection = null;

    InputStream in = null;

    try{

      url = new URL("http://10.0.2.2:8888/data/post");

      connection =(HttpURLConnection)url.openConnection();

      connection.setDoInput(true);

      connection.setDoOutput(true);

      connection.setRequestMethod("POST");

      connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

      connection.setRequestProperty("Charset","utf-8");

       DataOutputStream dop = new DataOutputStream(connection.getOutputStream());

      dop.writeBytes("token=alexzhou");

      dop.flush();

      dop.close();

      in = new InputStreamReader(connection.getInputStream());

      BufferedReader bufferedReader = new BufferedReader(in);

      StringBuffer str = new StringBuffer();

      String line = null;

      while((line = bufferedReader.readLine()) != null){

          str.append(line);

}

            result = str.toString();

}catch(Exception e){

e.printStackTrace()

}finally{

     if(connection != null){

         connection.disconnect();

}if(in != null){

    try{

    in.close();

}catch(IOException e){

e.printStackTrace();

}

}

}

return result;

} 

如果参数中有中文的话,可以使用下面的方式进行编码解码:

URLEncoder.encode("测试",“utf-8”);
URLDecoder.decode("测试",“utf-8”);
Apache的HttpClient:

(1)get请求

public String executeGet(){ 

     String result = null;

   BufferedReader reader = null;

   try{

         HttpClient client = new DefaultHttpClient();

     HttpGet request = new HttpGet();

     request.setURL(new URL("http://10.0.2.2:8888/data/get/?token=alexzhou"));

    HttpResponse respone =client.execute(request); 

    reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

    StringBuffer strBuffer = new StringBuffer("");

     String line = null;

     while ((line = reader.readLine()) != null) {

          strBuffer.append(line);

   }

       result = strBuffer.toString();

   catch (Exception e) {

           e.printStackTrace();

        finally {

           if (reader != null) {

             try {

                 reader.close();

                 reader = null;

              catch (IOException e) {

                 e.printStackTrace();

              }

            }

        }

        return result;

 

 

 

}

(2)post方式

public String executePost() {       
     String result = null;
     BufferedReader reader = null;
    try {

        HttpClient client = new DefaultHttpClient();

        HttpPost request = new HttpPost();

        request.setURI(new URI("http://10.0.2.2:8888/data/post/"));

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

        postParameters.add(new BasicNameValuePair("token""alexzhou"));

        UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParameters);

        request.setEntity(formEntity);

        HttpResponse response = client.execute(request);

        reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

        StringBuffer strBuffer = new StringBuffer("");          
        String line = null;
        while ((line = reader.readLine()) != null) {
             strBuffer.append(line);
          }
             result = strBuffer.toString();
        catch (Exception e) {
            e.printStackTrace();
        finally {
            if (reader != null) {
                try {
                    reader.close();
                    reader = null;
                catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
 
        return result;
    }


Android Http请求方法汇总

标签:

原文地址:http://www.cnblogs.com/yuanting/p/4919442.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!