HttpClient
Android 6.0版本移除了对HttpClient客户端的支持
Google推荐使用HttpURLConnection。此API效率更高,通过透明压缩和响应缓存减少网络使用,降低耗电量
待补充笔记
要继承使用HttpClient需要在build.gradle中声明:
android {
...
//声明 使用
useLibrary 'org.apache.http.legacy'
...
}
添加依赖:
dependencies {
//依赖HttpClient
implementation 'org.apache.httpcomponents:httpclient-android:4.3.5.1'
}
基本使用:
- POST
//创建HttpClient
1HttpClient client = HttpClients.createDefault();
//创建post请求
HttpPost post = new HttpPost(url);
// 构建请求参数
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("tel", phoneNum));
//设置post请求体
post.setEntity(new UrlEncodedFormEntity(params));
//执行请求
HttpResponse response = client.execute(post);
//获取结果
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
String result = EntityUtils.toString(response.getEntity());
//处理请求结果
}
- GET
//1 创建 HttpClient
HttpClient client = HttpClients.createDefault();
//创建get请求:参数拼接在url中
HttpGet get = new HttpGet(url + "?tel=" + phoneNum);
//执行请求
HttpResponse response = client.execute(get);
//获取结果
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
String result = EntityUtils.toString(response.getEntity());
mHandler.sendMessage(mHandler.obtainMessage(UPDATE_UI, result));
}
- RequestBuild构建请求对象
//请求配置:连接超时
RequestConfig requestConfig = RequestConfig
.custom()
.setConnectTimeout(5000)
.build();
//创建httpclient
//HttpClient client = HttpClients.createDefault();
CloseableHttpClient client = HttpClients
.custom()
.setDefaultRequestConfig(requestConfig)
.build();
//构建请求对象
HttpUriRequest request = RequestBuilder
//请求方法
.get()
//.post()
//请求url
.setUri(url)
//请求参数
.addParameter("tel", phoneNum)
.build();
//执行一个请求
HttpResponse response = client.execute(request);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
String result = EntityUtils.toString(response.getEntity());
mHandler.sendMessage(mHandler.obtainMessage(UPDATE_UI, result));
}