• Android Http请求框架一:Get 和 Post 请求


    1、HttpUtil

    package com.app.android01;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.params.CoreConnectionPNames;
    import org.apache.http.protocol.HTTP;
    import org.apache.http.util.EntityUtils;
    
    public class HttpUtil {
    
        /**
         * get请求
         * @param httpUrl
         * @return
         * @throws  
         */
        public String httpGet( String httpUrl ){
            String result = "" ;
            try {
                BufferedReader reader = null;
                StringBuffer sbf = new StringBuffer() ;
    
                URL url  = new URL( httpUrl ) ;
                HttpURLConnection connection = (HttpURLConnection) url.openConnection() ;
                //设置超时时间 10s
                connection.setConnectTimeout(10000);  
                //设置请求方式
                connection.setRequestMethod( "GET" ) ;
                connection.connect();
                InputStream is = connection.getInputStream() ;
                reader = new BufferedReader(new InputStreamReader( is , "UTF-8" )) ;
                String strRead = null ;
                while ((strRead = reader.readLine()) != null) {
                    sbf.append(strRead);
                    sbf.append("
    ");
                }
                reader.close();
                result = sbf.toString();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }
    
        /**
         * httpPost请求
         * @param httpUrl
         * @return
         */
        public String httpPost( String httpUrl ){
            String result = "" ;
            // 第一步,创建HttpPost对象 
            HttpPost httpPost = new HttpPost( httpUrl ); 
    
            // 设置HTTP POST请求参数必须用NameValuePair对象 
            List<NameValuePair> params = new ArrayList<NameValuePair>(); 
            params.add(new BasicNameValuePair("action", "downloadAndroidApp")); 
            params.add(new BasicNameValuePair("packageId", "89dcb664-50a7-4bf2-aeed-49c08af6a58a")); 
            params.add(new BasicNameValuePair("uuid", "test_ok1")); 
    
            HttpResponse httpResponse = null; 
            try { 
                // 设置httpPost请求参数 
                httpPost.setEntity(new UrlEncodedFormEntity( params , HTTP.UTF_8 )); 
                HttpClient httpClient = new DefaultHttpClient() ;
                // 请求超时  10s
                httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10000 ) ;
                // 读取超时  10s
                httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 10000 );
    
                httpResponse = httpClient.execute( httpPost ) ; 
                if (httpResponse.getStatusLine().getStatusCode() == 200) { 
                    // 第三步,使用getEntity方法活得返回结果 
                    result  = EntityUtils.toString(httpResponse.getEntity()); 
                } 
            } catch (ClientProtocolException e) { 
                e.printStackTrace(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
            return result ;
        } 
    }

    2、异步请求

     1 /**
     2      * 异步请求
     3      * @author admin
     4      */
     5     class GetData extends AsyncTask< String , Integer , String >{
     6 
     7         @Override
     8         protected String doInBackground(String... params) {
     9             HttpUtil httpUtil = new HttpUtil() ;
    10             String resutl = httpUtil.httpGet( params[0] ) ;
    11             if( resutl == null ){
    12                 return "" ;
    13             }
    14             return resutl ;
    15         }
    16 
    17         @Override
    18         protected void onPostExecute(String result) {
    19             super.onPostExecute(result);
    20         }
    21     }

    Android Http请求框架二:xUtils 框架网络请求

  • 相关阅读:
    巨蟒python全栈开发-第11阶段 ansible_project4
    正则面试题
    正确的邮件发送格式?
    巨蟒python全栈开发-第11阶段 ansible_project3
    巨蟒python全栈开发-第11阶段 ansible_project2
    项目资源地址
    网络基础练习题
    巨蟒python全栈开发-第11阶段 ansible_project1
    数据库之单表查询
    数据的增删改
  • 原文地址:https://www.cnblogs.com/zhaoyanjun/p/4628272.html
Copyright © 2020-2023  润新知