package com.stylefeng.guns.modular.system.util;// 检测到您当前的ak设置了IP白名单校验
|
// 您的IP白名单中的IP非公网IP,请设置为公网IP,否则将请求失败:
|
// 请在IP地址为0.0.0.0/0 外网IP的计算发起请求,否则将请求失败
|
import org.springframework.stereotype.Component;
|
|
import java.io.BufferedReader;
|
import java.io.OutputStream;
|
import java.io.InputStreamReader;
|
import java.io.IOException;
|
import java.net.HttpURLConnection;
|
import java.net.URL;
|
import java.net.URLConnection;
|
import java.net.URLEncoder;
|
import java.util.TreeMap;
|
import java.util.Map;
|
|
@Component
|
public class TraceTrack {
|
|
public static String Host = "https://yingyan.baidu.com";
|
|
public static String URI = "/api/v3/entity/add";
|
|
public static String AK = "WQhfsluNzEeUHUxoH4jc4JiCQOXw4Mnx";
|
|
public static void main(String[] args) throws Exception {
|
// 请求参数
|
String entity_name = "entity_1";
|
String entity_desc = "zhangsan";
|
|
// POST请求,此处使用TreeMap,默认按key排序
|
extracted();
|
}
|
|
private static void extracted() throws Exception {
|
Map params = new TreeMap<String, String>();
|
params.put("ak", AK);
|
params.put("service_id", "241187");
|
params.put("entity_name", "entity_1");
|
params.put("entity_desc", "zhangsan");
|
|
|
String URL = Host + URI;
|
TraceTrack ta = new TraceTrack();
|
ta.requestPost(URL, params);
|
}
|
|
/** 发送POST请求 */
|
public void requestPost(String strUrl, Map<String, String> param) throws Exception {
|
if (strUrl == null || strUrl.length() <= 0 || param == null || param.size() <= 0) {
|
return;
|
}
|
|
// 构造x-www-form-urlencoded格式的字符串
|
StringBuffer queryString = new StringBuffer();
|
for (Map.Entry<?, ?> pair : param.entrySet()) {
|
queryString.append(pair.getKey() + "=");
|
queryString.append(URLEncoder.encode((String) pair.getValue(), "UTF-8") + "&");
|
}
|
|
if (queryString.length() > 0) {
|
queryString.deleteCharAt(queryString.length() - 1);
|
}
|
|
String result = "";
|
try {
|
URL url = new URL(strUrl);
|
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
|
urlConnection.setRequestMethod("POST");
|
//设置连接的超时值为3000毫秒,超时将抛出SocketTimeoutException异常
|
urlConnection.setConnectTimeout(3000);
|
//设置读取的超时值为3000毫秒,超时将抛出SocketTimeoutException异常
|
urlConnection.setReadTimeout(3000);
|
//将url连接用于输出,这样才能使用getOutputStream()。getOutputStream()返回的输出流用于传输数据
|
urlConnection.setDoOutput(true);
|
//设置Content-Type
|
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
|
//getOutputStream()返回的输出流,用于写入参数数据。
|
OutputStream outputStream = urlConnection.getOutputStream();
|
outputStream.write(queryString.toString().getBytes());
|
outputStream.flush();
|
outputStream.close();
|
//此时将调用接口方法。getInputStream()返回的输入流可以读取返回的数据。
|
InputStreamReader isr = new InputStreamReader(urlConnection.getInputStream());
|
BufferedReader reader = new BufferedReader(isr);
|
StringBuffer buffer = new StringBuffer();
|
String line;
|
while ((line = reader.readLine()) != null) {
|
buffer.append(line);
|
}
|
reader.close();
|
isr.close();
|
|
System.out.println("返回的内容: " + buffer.toString());
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|