##### HttpClient

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'
}

基本使用:

  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());
  //处理请求结果
}
  1. 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));
}
  1. 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));
}

猜你喜欢

转载自blog.csdn.net/ren18234073466/article/details/83620272