国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

HttpClient與HttpURLConnection網絡請求工具類

2019-11-06 09:59:46
字體:
來源:轉載
供稿:網友
package Utils;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.apache.http.HttpEntity;import org.apache.http.HttPResponse;import org.apache.http.HttpVersion;import org.apache.http.NameValuePair;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;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.BasicHttpParams;import org.apache.http.params.HttpConnectionParams;import org.apache.http.params.HttpParams;import org.apache.http.params.HttpProtocolParams;import org.apache.http.protocol.HTTP;import android.text.TextUtils;import android.util.Log;/** * HttpClient與HttpURLConnection 網絡請求 * * @author android.mtj 在Android6.0版本直接刪除了HttpClient類庫,如果仍想使用則解決方法是 * 1、如果使用的是eclipse則在libs中加入org.apache.http.legacy.jar * 這個jar包在:**sdk/platforms/android-23/optional目錄中(需要下載android 6.0的SDK) * 2、 如果使用的是android studio則 在相應的module下的build.gradle中加入: * * android { useLibrary 'org.apache.http.legacy' } */public class HttpRequestUtils { private static HttpRequestUtils mHttpUtils; /** * 獲取實例 * * @return */ public static HttpRequestUtils getInstance() { if (mHttpUtils == null) { mHttpUtils = new HttpRequestUtils(); } return mHttpUtils; }; /** * 創建HttpGet 請求 * * @param url * 請求地址 */ public String useHttpClientGet(String url) { String result = ""; HttpGet mHttpGet = new HttpGet(url); mHttpGet.addHeader("Connection", "Keep-Alive"); try { HttpClient mHttpClient = createHttpClient(); HttpResponse mHttpResponse = mHttpClient.execute(mHttpGet); HttpEntity mHttpEntity = mHttpResponse.getEntity(); // int code = mHttpResponse.getStatusLine().getStatusCode(); if (null != mHttpEntity) { InputStream mInputStream = mHttpEntity.getContent(); result = converStreamToString(mInputStream); mInputStream.close(); } } catch (IOException e) { e.printStackTrace(); } Log.i("mtj", "result== "+result); return result; } /** * 創建HttpPost 請求 * * @param url * 請求地址 * @param map * 請求參數 */ public String useHttpClientPost(String url, Map<String, String> map) { String result = ""; HttpPost mHttpPost = new HttpPost(url); mHttpPost.addHeader("Connection", "Keep-Alive"); try { HttpClient mHttpClient = createHttpClient(); List<NameValuePair> postParams = new ArrayList<NameValuePair>(); // 要傳遞的參數 for (Map.Entry<String, String> entry : map.entrySet()) { postParams.add(new BasicNameValuePair(entry.getKey(), entry .getValue())); } mHttpPost.setEntity(new UrlEncodedFormEntity(postParams)); HttpResponse mHttpResponse = mHttpClient.execute(mHttpPost); HttpEntity mHttpEntity = mHttpResponse.getEntity(); // int code = mHttpResponse.getStatusLine().getStatusCode(); if (null != mHttpEntity) { InputStream mInputStream = mHttpEntity.getContent(); result = converStreamToString(mInputStream); mInputStream.close(); } } catch (IOException e) { e.printStackTrace(); } Log.i("mtj", "result== "+result); return result; } /** * 創建HttpUrlConnectionPost 請求 * * @param url * 請求地址 * @param map * 請求參數 * @return */ public String useHttpUrlConnectionPost(String url, Map<String, String> map) { String result = ""; InputStream mInputStream = null; HttpURLConnection mHttpURLConnection = getHttpURLConnection(url, "POST"); try { List<NameValuePair> post = new ArrayList<NameValuePair>(); // 要傳遞的參數 for (Map.Entry<String, String> entry : map.entrySet()) { post.add(new BasicNameValuePair(entry.getKey(), entry .getValue())); } postParams(mHttpURLConnection.getOutputStream(), post); mHttpURLConnection.connect(); mInputStream = mHttpURLConnection.getInputStream(); // int code = mHttpURLConnection.getResponseCode(); result = converStreamToString(mInputStream); mInputStream.close(); } catch (IOException e) { e.printStackTrace(); } Log.i("mtj", "result== "+result); return result; } /** * 創建HttpUrlConnectionGet 請求 * * @param url * 請求地址 * @return */ public String useHttpUrlConnectionGet(String url) { String result = ""; InputStream mInputStream = null; HttpURLConnection mHttpURLConnection = getHttpURLConnection(url, "GET"); try { mHttpURLConnection.connect(); mInputStream = mHttpURLConnection.getInputStream(); // int code = mHttpURLConnection.getResponseCode(); result = converStreamToString(mInputStream); mInputStream.close(); } catch (IOException e) { e.printStackTrace(); } Log.i("mtj", "result== "+result); return result; } // 創建HttpClient private HttpClient createHttpClient() { HttpParams mDefaultHttpParams = new BasicHttpParams(); // 設置連接超時 HttpConnectionParams.setConnectionTimeout(mDefaultHttpParams, 15000); // 設置請求超時 HttpConnectionParams.setSoTimeout(mDefaultHttpParams, 15000); HttpConnectionParams.setTcpNoDelay(mDefaultHttpParams, true); HttpProtocolParams.setVersion(mDefaultHttpParams, HttpVersion.HTTP_1_1); HttpProtocolParams.setContentCharset(mDefaultHttpParams, HTTP.UTF_8); // 持續握手 HttpProtocolParams.setUseExpectContinue(mDefaultHttpParams, true); HttpClient mHttpClient = new DefaultHttpClient(mDefaultHttpParams); return mHttpClient; } // 將請求結果轉換成String類型 private String converStreamToString(InputStream is) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuffer sb = new StringBuffer(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "/n"); } String respose = sb.toString(); return respose; } // 創建HttpURLConnection // requestMethod == POST / GET private static HttpURLConnection getHttpURLConnection(String url, String requestMethod) { HttpURLConnection mHttpURLConnection = null; try { URL mUrl = new URL(url); mHttpURLConnection = (HttpURLConnection) mUrl.openConnection(); // 設置鏈接超時時間 mHttpURLConnection.setConnectTimeout(15000); // 設置讀取超時時間 mHttpURLConnection.setReadTimeout(15000); // 設置請求參數 mHttpURLConnection.setRequestMethod(requestMethod); // 添加Header mHttpURLConnection.setRequestProperty("Connection", "Keep-Alive"); // 接收輸入流 mHttpURLConnection.setDoInput(true); // 傳遞參數時需要開啟 mHttpURLConnection.setDoOutput(true); } catch (IOException e) { e.printStackTrace(); } return mHttpURLConnection; } // 因為我們要發送POST請求,所以在UrlConnManager類中再寫一個postParams()方法 // 用來組織一下請求參數并將請求參數寫入到輸出流中 private void postParams(OutputStream output, List<NameValuePair> paramsList) throws IOException { StringBuilder mStringBuilder = new StringBuilder(); for (NameValuePair pair : paramsList) { if (!TextUtils.isEmpty(mStringBuilder)) { mStringBuilder.append("&"); } mStringBuilder.append(URLEncoder.encode(pair.getName(), "UTF-8")); mStringBuilder.append("="); mStringBuilder.append(URLEncoder.encode(pair.getValue(), "UTF-8")); } BufferedWriter writer = new BufferedWriter(new OutputStreamWriter( output, "UTF-8")); writer.write(mStringBuilder.toString()); writer.flush(); writer.close(); }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泰顺县| 云浮市| 彝良县| 周口市| 乳源| 通城县| 北川| 建始县| 广水市| 左权县| 迁安市| 高唐县| 温州市| 会理县| 佳木斯市| 崇文区| 罗源县| 运城市| 武平县| 昌图县| 海伦市| 江阴市| 镶黄旗| 香河县| 夏津县| 股票| 阳朔县| 广安市| 临朐县| 庆元县| 大荔县| 霍邱县| 海南省| 永德县| 铜梁县| 崇阳县| 车险| 东乡县| 仁化县| 霍林郭勒市| 太湖县|