HttpClient 是什么?
HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
该如何使用呢?我以一个过来人的身份浅谈一番。
首先,引入HttpClient依赖
<properties>
<httpclient.version>4.5.2</httpclient.version>
</properties>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient.version}</version>
</dependency>
或者
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
创建HttpAsyncClient.java
package com.syjalor.util;
import java.io.IOException;
import java.util.concurrent.Future;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.protocol.HttpContext;
/**
* Class HttpAsyncClient
*
* @author lenian
* @version 2019-07-09
*/
public interface HttpAsyncClient {
boolean isReady();
void execute(HttpUriRequest request, CompletedCallback callback);
void execute(HttpUriRequest request, Object attachment, CompletedCallback callback);
void execute(HttpUriRequest request, HttpContext context, Object attachment, CompletedCallback callback);
Future<HttpResponse> execute(HttpUriRequest request);
Future<HttpResponse> execute(HttpUriRequest request, HttpContext context);
interface CompletedCallback {
void callback(HttpUriRequest request, HttpResponse response, Object attachment, IOException e)
throws IOException;
}
}
SyjalorController.java
@Autowired
private SyjalorApiService syjalorApiService;
/**
* @author lenian
* @date 2019 07 09
* 创建直播间
* @param
* @return
*/
@Get("create")
@Post("create")
public JSONObject create(){
String token = getToken(server_key);
// 测试数据
String[] array = {token, "AAA", "BBB", "CCC", "DDD", "1", "1", "1", "1", "1"};
List<String> list = new ArrayList<String>(array.length);
for (String s : array) {
list.add(s);
}
JSONObject jsonObject2 = syjalorApiService.create(list);
return jsonObject2;
}
SyjalorApiService.java
// 创建直播间(url)
final String create = "https://www.syjalor.com/lb/openapi/room/create";
/**
* @author lenian
* @date 2019 07 09
* 创建直播间
* @param
* @return
*/
public JSONObject create(List<String> list){
HttpPost httpPost = new HttpPost(create);
JSONObject jsonParam = new JSONObject();
jsonParam.put("token", String.valueOf(list.get(0)));
// 取值list.get(0)--->list.get(9)
StringEntity entity = null;
try {
entity = new StringEntity(jsonParam.toString(), "utf-8");
// 解决中文乱码问题
entity.setContentEncoding("UTF-8");
entity.setContentType(contentType);
}
catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
httpPost.setEntity(entity);
String returnInfo = HttpUtil.getString(httpAsyncClient, httpPost);
JSONObject jsonstr = JSONObject.fromObject(returnInfo);
return jsonstr;
}
访问浏览器,获取你想要的信息
eg: http://www.syjalor.com/ysphy/getInfo
如图:
更多更全案例,百度一下:
嘉乐博客系统
www.syjalor.com
www.blog.syjalor.com