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("\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 ;
}
}
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 框架網路請求