Java使用HttpUtil.request方法可以发送请求即【Java访问url得到响应数据】
注:这个工具类可以在网上找,也可以自己手写 ,手写的话需要用到以下依赖:
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.10.0</version>
</dependency>
工具类代码附上:
public static String request(String url, HttpMethod httpMethod, String requestData) {
try {
logger.info("*********HTTPREQUEST START********");
logger.info("*********requestUrl is " + url + " ********");
OkHttpClient.Builder builder = new OkHttpClient.Builder()
.connectTimeout(15, TimeUnit.SECONDS)
.writeTimeout(20, TimeUnit.SECONDS)
.readTimeout(20, TimeUnit.SECONDS);
OkHttpClient client = builder.build();
Request request = null;
if (httpMethod == HttpMethod.POST) {
if (url.contains("?") && StringUtils.isBlank(requestData)) {
Builder formBodyBuilder = new Builder();
String[] args = url.split("[?]");
url = args[0];
String[] params = args[1].split("&");
for (String param : params) {
String[] keyAndValues = param.split("=");
formBodyBuilder.add(keyAndValues[0], keyAndValues.length == 1 ? "" : keyAndValues[1]);
}
request = new Request.Builder().url(url).post(formBodyBuilder.build()).build();
} else {
RequestBody requestBody = RequestBody.create(MEDIA_TYPE_JSON, requestData);
logger.info("*********requestBody is " + requestData + " ********");
request = new Request.Builder().url(url).post(requestBody).build();
}
} else {
request = new Request.Builder().url(url).build();
}
Response response = client.newCall(request).execute();
String responseBody = response.body().string();
logger.info("*********responseBody is " + responseBody);
logger.info("********* SUCCESS END********");
return responseBody;
} catch (Exception ex) {
logger.error("********* ERROR END********", ex);
}
return null;
}
}