1.HttpURLConnection
1 public class HttpURLConnectionGetAndPost { 2 private String urlAddress = "xxxx"; 3 4 public void doGet(String method, String s) throws IOException { 5 String getUrl = urlAddress + method + "?sex=" + s; 6 7 URL url = new URL(getUrl); 8 HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); 9 httpURLConnection.connect(); 10 if (httpURLConnection.getResponseCode() == 200) { 11 StringBuffer sb = new StringBuffer(); 12 InputStream in = httpURLConnection.getInputStream(); 13 BufferedReader bufferReader = new BufferedReader(new InputStreamReader(in)); 14 String readLine = ""; 15 16 while ((readLine = bufferReader.readLine()) != null) { 17 sb.append(readLine); 18 } 19 in.close(); 20 bufferReader.close(); 21 httpURLConnection.disconnect(); 22 23 Log.d("test", sb.toString()); 24 25 } else { 26 Log.d("test", "get failed"); 27 } 28 29 } 30 31 public void doPost(String method, String s) throws IOException { 32 33 URL url = new URL(urlAddress + method); 34 HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); 35 httpURLConnection.setDoInput(true); 36 httpURLConnection.setDoOutput(true); 37 httpURLConnection.setReadTimeout(10000); 38 httpURLConnection.setConnectTimeout(10000); 39 httpURLConnection.setRequestMethod("POST"); 40 httpURLConnection.setUseCaches(false); 41 httpURLConnection.setRequestProperty("content-type", ""); 42 httpURLConnection.setRequestProperty("content-type", ""); 43 httpURLConnection.connect(); 44 DataOutputStream dataOutputStream = new DataOutputStream(httpURLConnection.getOutputStream()); 45 46 String content = "sex=" + s; 47 48 dataOutputStream.writeBytes(content); 49 dataOutputStream.flush(); 50 dataOutputStream.close(); 51 52 if (httpURLConnection.getResponseCode() == 200) { 53 InputStream inputStream = httpURLConnection.getInputStream(); 54 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 55 String readLine = ""; 56 StringBuffer sb = new StringBuffer(); 57 while ((readLine = bufferedReader.readLine()) != null) { 58 sb.append(readLine); 59 } 60 bufferedReader.close(); 61 inputStream.close(); 62 httpURLConnection.disconnect(); 63 Log.d("test", sb.toString()); 64 } else { 65 Log.d("test", "post failed"); 66 } 67 } 68 }
2.HttpClient
1 public class HttpClientGetAndPost { 2 private String urlAddress = "xxxx"; 3 private void doGet(String method, String s){ 4 5 String getUrl = urlAddress+ method + "?sex= "+ s; 6 HttpGet httpGet = new HttpGet(getUrl); 7 try { 8 HttpResponse httpResponse = new DefaultHttpClient().execute(httpGet); 9 if(httpResponse.getStatusLine().getStatusCode() ==200){ 10 String result = EntityUtils.toString(httpResponse.getEntity()); 11 Log.d("test","result="+result); 12 }else{ 13 14 Log.d("test","get failed"); 15 } 16 } catch (ClientProtocolException e) { 17 // TODO Auto-generated catch block 18 e.printStackTrace(); 19 } catch (IOException e) { 20 // TODO Auto-generated catch block 21 e.printStackTrace(); 22 } 23 24 25 /// HttpPost 26 } 27 28 29 private void doPost(String method, String s) throws ClientProtocolException, IOException{ 30 HttpPost httpPost = new HttpPost(urlAddress+method); 31 List<NameValuePair> parms = new ArrayList<NameValuePair>(); 32 parms.add(new BasicNameValuePair("sex",s) ); 33 httpPost.setEntity(new UrlEncodedFormEntity(parms,HTTP.UTF_8)); 34 HttpResponse httpResponse = new DefaultHttpClient().execute(httpPost); 35 if(httpResponse.getStatusLine().getStatusCode() ==200){ 36 String result = EntityUtils.toString(httpResponse.getEntity()); 37 Log.d("test","result="+result); 38 }else{ 39 40 Log.d("test","post failed"); 41 } 42 } 43 }
3. OKHttp3
1 public class OkHttpGetAndPost { 2 3 private String urlAddress = "xxxx"; 4 private OkHttpClient okHttpClient = new OkHttpClient(); 5 6 private void doGet(String method, String s) throws IOException { 7 String url = urlAddress + method + "?sex=" + s; 8 Request request = new Request.Builder().url(url).get().build(); 9 Response respone = okHttpClient.newCall(request).execute(); 10 if (respone.isSuccessful()) { 11 Log.d("test", respone.body().string()); 12 } else { 13 Log.d("test", "get failed"); 14 } 15 } 16 17 private void doPost(String method, String s) { 18 FormBody formBody = new FormBody.Builder().add("sex", s).build(); 19 RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), "{\"sex\",\""+s+"\"}"); 20 Request request = new Request.Builder().url(urlAddress + method).post(body).build(); 21 okHttpClient.newCall(request).enqueue(new Callback() { 22 @Override 23 public void onResponse(Call arg0, Response arg1) throws IOException { 24 Log.d("test", arg1.body().string()); 25 } 26 @Override 27 public void onFailure(Call arg0, IOException arg1) { 28 Log.d("test", "post failed"); 29 } 30 }); 31 } 32 }
由以上demo可以看出,OKHttp使用最简单方便,代码书写量少,而且网络请求高效。