一、HttpUtilhtml
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("\r\n"); } 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 ; } }
二、異步請求java
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 }