public String requestCoreQuery(@RequestParam String context) {
//请求地址
String url = "http://www.baidu.com";
//new 请求类
RequesetBody requesetBody = new RequesetBody();
requesetBody.setQueryText(context);
// new 格式化Map格式 toString
ObjectMapper objectMapper = new ObjectMapper();
try {
String response = getData(url, requesetBody);
Map<String, Object> request = RequestUtils.getRequest(response);
System.out.println(request);
//格式画Map格式
response = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(request);
System.out.println(response);
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
private String getData(String url, RequesetBody requesetBody) {
String charset = "UTF-8";
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
HttpURLConnection connect = null;
String response = null;
try {
connect = (HttpURLConnection) (new URL(url).openConnection());
//设置请求头 TOKEN参数
connect.addRequestProperty("Authorization", "123456");
// 设置请求方式
connect.setRequestMethod("POST");
// 设置允许输出
connect.setDoOutput(true);
connect.setDoInput(true);
//设置
connect.setConnectTimeout(1000 * 10);
connect.setReadTimeout(1000 * 80);
// 设置文件类型:
connect.setRequestProperty("ContentType", "application/json");
connect.connect();
// 发送数据
connect.getOutputStream().write(requesetBody.toString().getBytes(charset));
System.out.println("返回状态码:"+connect.getResponseCode());
int responseCode = connect.getResponseCode();
// 接收数据
if (responseCode == "200") {
InputStream in = connect.getInputStream();
byte[] data = new byte[1024];
int len = 0;
while ((len = in.read(data, 0, data.length)) != -1) {
outStream.write(data, 0, len);
}
in.close();
response = outStream.toString("UTF-8");
}else {
BufferedReader reader = new BufferedReader(new InputStreamReader(connect.getErrorStream(), "utf-8"));
String line = "";
while ((line = reader.readLine()) != null) {
response += line;
}
response= response.substring(4);
reader.close();
}
// 关闭连接
connect.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
return response;
}
//将参数Map转接
public static Map<String, Object> getRequest(String requestBody) {
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> map = new HashMap<>();
try {
map = objectMapper.readValue(requestBody, HashMap.class);
}catch (IOException e){
log.error(e.getMessage());
}
return map;
}
07-28
07-28
07-28