<!--https://github.com/apache/httpcomponents-client-->
<dependency>
<groupId>org.apache.httpcomponents.core5</groupId>
<artifactId>httpcore5</artifactId>
<version>5.0.4</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.0.4</version>
</dependency>
- Get,Post的封裝:HttpClientUtil
import org.apache.hc.client5.http.ClientProtocolException;
import org.apache.hc.client5.http.classic.methods.HttpGet;
import org.apache.hc.client5.http.classic.methods.HttpPost;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.core5.http.ClassicHttpResponse;
import org.apache.hc.core5.http.HttpEntity;
import org.apache.hc.core5.http.HttpStatus;
import org.apache.hc.core5.http.ParseException;
import org.apache.hc.core5.http.io.HttpClientResponseHandler;
import org.apache.hc.core5.http.io.entity.EntityUtils;
import org.apache.hc.core5.http.io.entity.StringEntity;
import java.io.IOException;
import java.net.URISyntaxException;
import java.nio.charset.Charset;
public class HttpClientUtil {
public static String doGet(String url){
try {
final CloseableHttpClient httpclient = HttpClients.createDefault();
//final HttpGet httpget = new HttpGet("https://api.doctorxiong.club/v1/fund/detail?code=000001&startDate=2020-09-01");
final HttpGet httpget = new HttpGet(url);
System.out.println("Executing request " + httpget.getMethod() + " " + httpget.getUri());
final HttpClientResponseHandler<String> responseHandler = new HttpClientResponseHandler<String>() {
@Override
public String handleResponse(
final ClassicHttpResponse response) throws IOException {
final int status = response.getCode();
if (status >= HttpStatus.SC_SUCCESS && status < HttpStatus.SC_REDIRECTION) {
final HttpEntity entity = response.getEntity();
try {
return entity != null ? EntityUtils.toString(entity) : null;
} catch (final ParseException ex) {
throw new ClientProtocolException(ex);
}
} else {
throw new ClientProtocolException("Unexpected response status: " + status);
}
}
};
final String responseBody = httpclient.execute(httpget, responseHandler);
return responseBody;
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static String doPost(String url,String params){
try {
final CloseableHttpClient httpclient = HttpClients.createDefault();
final HttpPost httppost = new HttpPost(url);
StringEntity entiry = new StringEntity(params, Charset.forName("utf-8"));
httppost.setEntity(entiry);
httppost.setHeader("Content-Type","application/json");
System.out.println("Executing request " + httppost.getMethod() + " " + httppost.getUri());
final HttpClientResponseHandler<String> responseHandler = new HttpClientResponseHandler<String>() {
@Override
public String handleResponse(
final ClassicHttpResponse response) throws IOException {
final int status = response.getCode();
if (status >= HttpStatus.SC_SUCCESS && status < HttpStatus.SC_REDIRECTION) {
final HttpEntity entity = response.getEntity();
try {
return entity != null ? EntityUtils.toString(entity) : null;
} catch (final ParseException ex) {
throw new ClientProtocolException(ex);
}
} else {
throw new ClientProtocolException("Unexpected response status: " + status);
}
}
};
final String responseBody = httpclient.execute(httppost, responseHandler);
return responseBody;
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
String responseBody = HttpClientUtil.doGet("https://api.doctorxiong.club/v1/fund/detail?code=000001&startDate=2020-09-01");
if(responseBody != null){
JSONObject json = JSONObject.parseObject(responseBody);
if("200".equals(json.getString("code"))){
System.out.println("第三方傳回:" + json.getString("data"));
}
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("fundType",Arrays.asList("zs"));
jsonObject.put("sort","z");
jsonObject.put("fundCompany",Arrays.asList("80000248"));
jsonObject.put("pageIndex",1);
jsonObject.put("pageSize",1);
String responseBody = HttpClientUtil.doPost("https://api.doctorxiong.club/v1/fund/rank",JSONObject.toJSONString(jsonObject));
if(responseBody != null){
JSONObject json = JSONObject.parseObject(responseBody);
if("200".equals(json.getString("code"))){
System.out.println("第三方傳回:" + json.getString("data"));
}
}