Android Http请求框架一:Get 和 Post 请求

时间:2023-03-09 15:58:51
Android Http请求框架一:Get 和 Post 请求

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、异步请求

 /**
* 异步请求
* @author admin
*/
class GetData extends AsyncTask< String , Integer , String >{ @Override
protected String doInBackground(String... params) {
HttpUtil httpUtil = new HttpUtil() ;
String resutl = httpUtil.httpGet( params[0] ) ;
if( resutl == null ){
return "" ;
}
return resutl ;
} @Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
}
}

Android Http请求框架二:xUtils 框架网络请求