【netWork】android 网络发开通用工具类

转载:www.androidkaifa.com 

这是笔者我本人在工作中实际运用的一个能用android网络工具类(一部分),写不是很好,如哪个大牛可以为我指点指点,还请留言,谢谢,现在我把它在www.androidkaifa.com放出来,希望对需要的朋友有帮助,

public class ShopHttpTool {
    private static final String CHARSET = HTTP.UTF_8;   
    private static HttpClient customerHttpClient;
    private static final String TAG="ShopHttpTool";
    public static synchronized HttpClient getHttpClient() {
    
            if (null == customerHttpClient) {
                 HttpParams params = new BasicHttpParams();
                // 设置http协议版本          
                 HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
                 HttpProtocolParams.setContentCharset(params, CHARSET);
                 
                 HttpProtocolParams.setUserAgent(params,"Mozilla/5.0(Linux;U;Android 2.2.1;en-us;Nexus One Build.FRG83)"+ "AppleWebKit/553.1(KHTML,like Gecko) Version/4.0 Mobile Safari/533.1");
                 ConnManagerParams.setTimeout(params, 100000);
                 HttpConnectionParams.setConnectionTimeout(params, 100000);
                 HttpConnectionParams.setSoTimeout(params, 100000);
                 SchemeRegistry schReg = new SchemeRegistry();
                 schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
                 schReg.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
                 //使用线程安全方式去管理创建HttpClient
                 ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schReg);
                 customerHttpClient = new DefaultHttpClient(conMgr, params);
             }
        return customerHttpClient;
    }
    
    //数据请求访问
    public static InputStream postupload(String url, List<NameValuePair> formparams,UserBean user) throws Exception{   
               HttpResponse response;
                 //将参数条件传入对象实体
                UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams,CHARSET);
                 // 创建POST请求          
                 HttpPost request = new HttpPost(url);  

                 if(user==null){
                   request.addHeader("userid", "0");
                   request.addHeader("weblogid", "");
                 }else {
                     request.addHeader("userid", user.getId()); 
                     request.addHeader("weblogid", user.getWeblogid());
                 }
                 request.addHeader("Content-Type","application/x-www-form-urlencoded");
                 request.setEntity(entity);
                 Log.i(TAG, request.getURI().getPath());
                 HttpClient client =new DefaultHttpClient();
                 response = client.execute(request);
                 if(response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {               
                     throw new RuntimeException("请求失败");            
                  }
                 HttpEntity resEntity =  response.getEntity();
                 Log.i(TAG, "is success");
                 return (resEntity == null) ? null:resEntity.getContent();
        
            
    }
    public static InputStream getupload(String url,Map<String, String> params,UserBean user)throws Exception{        

            StringBuilder sb = new StringBuilder(url);   
            sb.append('?');   
              // ?method=save&title=435435435&timelength=89&   
            for(Map.Entry<String, String> entry : params.entrySet()){   
              
                sb.append(entry.getKey()).append('=').append(URLEncoder.encode(entry.getValue(), "UTF-8")).append('&');
            
            }   
             sb.deleteCharAt(sb.length()-1);   
             Log.i(TAG, sb.toString());     
            HttpGet httpget=new HttpGet(sb.toString());    
            httpget.addHeader("weblogid", user.getWeblogid());
             if(user==null){
                 httpget.addHeader("userid", "0");
             }else {
                 httpget.addHeader("userid", user.getId()); 
             }
            httpget.addHeader("Content-Type","application/x-www-form-urlencoded");
            //取得HttpClient对象              
             HttpClient httpclient =getHttpClient();     
            //请求HttpClient,取得HttpResponse             
              HttpResponse response = httpclient.execute(httpget);              
            //请求成功              
             if(response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {               
                throw new RuntimeException("请求失败");    
              }
            HttpEntity resEntity =  response.getEntity();
            Log.i(TAG, "is success");
            return (resEntity == null) ? null:resEntity.getContent();

  }
    
    //SSL HTTPS Cookie
    public static InputStream sendRequestFromHttpClient(String path, Map<String, String> params,UserBean user) throws Exception{
        List<NameValuePair> paramPairs = new ArrayList<NameValuePair>();
        if(params!=null && !params.isEmpty()){
            for(Map.Entry<String, String> entry : params.entrySet()){
                paramPairs.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
            }
        }
        UrlEncodedFormEntity entitydata = new UrlEncodedFormEntity(paramPairs, CHARSET);//得到经过编码过后的实体数据
        HttpPost post = new HttpPost(path); //form
        post.addHeader("weblogid", user.getWeblogid());
         if(user==null){
             post.addHeader("userid", "0");
             }else {
                 post.addHeader("userid", user.getId()); 
          }
        post.addHeader("ContentType", "application/x-www-form-urlencoded");
        
        post.setEntity(entitydata);
        DefaultHttpClient client = new DefaultHttpClient(); //浏览器
        HttpResponse response = client.execute(post);//执行请求
        if(response.getStatusLine().getStatusCode()==200){
            Log.i(TAG, "is success");
            return response.getEntity().getContent();
        }
        return null;
    }
   
    public static InputStream sendPostRequest(String path, Map<String, String> params,UserBean user) throws Exception{
        StringBuilder sb = new StringBuilder();
        if(params!=null && !params.isEmpty()){
            for(Map.Entry<String, String> entry : params.entrySet()){
                sb.append(entry.getKey()).append('=')
                    .append(URLEncoder.encode(entry.getValue(), CHARSET)).append('&');
            }
            sb.deleteCharAt(sb.length()-1);
        }
        byte[] entitydata = sb.toString().getBytes();//得到实体的二进制数据
        URL url = new URL(path);
        HttpURLConnection conn = (HttpURLConnection)url.openConnection();
        conn.setRequestMethod("POST");
        conn.setConnectTimeout(5 * 1000);
        conn.setDoOutput(true);//如果通过post提交数据,必须设置允许对外输出数据
        //Content-Type: application/x-www-form-urlencoded
        //Content-Length: 38
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        conn.setRequestProperty("Content-Length", String.valueOf(entitydata.length));
        conn.setRequestProperty("weblogid", user.getWeblogid());
        if(user==null){
            conn.setRequestProperty("userid", "0");
        }else 
        {
            conn.setRequestProperty("userid", user.getId());
        }
        
        OutputStream outStream = conn.getOutputStream();
        outStream.write(entitydata);
        outStream.flush();
        outStream.close();
        if(conn.getResponseCode()==200){
            Log.i(TAG, "is success");
            return conn.getInputStream();
        }
        return null;
    }
    
    
    public static InputStream sendGetRequest(String path, Map<String, String> params,UserBean user) throws Exception{
        StringBuilder sb = new StringBuilder(path);
        sb.append('?');
        // ?method=save&title=435435435&timelength=89&
        for(Map.Entry<String, String> entry : params.entrySet()){
            sb.append(entry.getKey()).append('=')
                .append(URLEncoder.encode(entry.getValue(), CHARSET)).append('&');
        }
        sb.deleteCharAt(sb.length()-1);
        byte[] entitydata = sb.toString().getBytes();//得到实体的二进制数据
        URL url = new URL(sb.toString());
        HttpURLConnection conn = (HttpURLConnection)url.openConnection();
        conn.setRequestMethod("GET");
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        conn.setRequestProperty("Content-Length", String.valueOf(entitydata.length));
        conn.setRequestProperty("weblogid", user.getWeblogid());
        if(user==null){
            conn.setRequestProperty("userid", "0");
        }else 
        {
            conn.setRequestProperty("userid", user.getId());
        }
        conn.setConnectTimeout(5 * 1000);
        if(conn.getResponseCode()==200){
            Log.i(TAG, "is success");
            return conn.getInputStream();
        }
        return null;
    }
    
    
    public static byte[] readStream(InputStream inStream){
        ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
        try {
            byte[] buffer = new byte[1024];
            int len = -1;
            while( (len=inStream.read(buffer)) != -1){
                outSteam.write(buffer, 0, len);
            }
            outSteam.close();
            inStream.close();
        } catch (IOException e) {
            Log.w(TAG, e.getMessage());
            
        }
        return outSteam.toByteArray();
    }
}


你可能感兴趣的:(android,http)