需要添加的依赖
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.12</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.56</version>
</dependency>
帮助类中的send方法
/**
* codeBy ycy
* 发送post请求
* @param url 路径
* @param jsonObject 参数(json类型)
* @param encoding 编码格式
* @return
* @throws ParseException
* @throws IOException
*/
public static String send(String url, JSONObject jsonObject, String encoding) throws ParseException, IOException{
String body = "";
//创建httpclient对象
CloseableHttpClient client = HttpClients.createDefault();
//创建post方式请求对象
HttpPost httpPost = new HttpPost(url);
//装填参数
StringEntity s = new StringEntity(jsonObject.toString(), "utf-8");
s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
"application/json"));
//设置参数到请求对象中
httpPost.setEntity(s);
System.out.println("请求地址:"+url);
// System.out.println("请求参数:"+nvps.toString());
//设置header信息
//指定报文头【Content-type】、【User-Agent】
// httpPost.setHeader("Content-type", "application/x-www-form-urlencoded");
httpPost.setHeader("Content-type", "application/json");
httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
//执行请求操作,并拿到结果(同步阻塞)
CloseableHttpResponse response = client.execute(httpPost);
//获取结果实体
HttpEntity entity = response.getEntity();
if (entity != null) {
//按指定编码转换结果实体为String类型
body = EntityUtils.toString(entity, encoding);
}
EntityUtils.consume(entity);
//释放链接
response.close();
return body;
}
使用方法
/**codeBy lq & ycy
*
* @param list [{tst1=WO2009290004}, {tst2=2009290004}, {tst3=20200916}, {tst4=01.01.0003}, {tst5=测试液体1}, {tst6=11}, {tst7=L}]
* @return
* @throws Exception
*/
public static JsonElement writeToWincc(List list) throws Exception {
System.out.println("list:"+list.toString());
String json = "{\"type\":\"write\",\"tags\":[";
for (int i = 0; i < list.size(); i++) {
String[] split = list.get(i).toString().split("=");
String name = split[0].substring(1, (split[0].length()));
String value = split[1].substring(0, (split[1].length() - 1));
json = json + "{\"name\":\"" + name + "\",\"value\":\"" + value + "\"},";
}
json = json.substring(0, json.length() - 1) + "]}";
//使用fastjson string转换为json
JSONObject obj= JSON.parseObject(json);
//使用帮助类方法
String sendPost = HttpRequest.send(url, obj,"utf-8");
//转成json对象
JsonParser jp = new JsonParser();
JsonObject jo = jp.parse(sendPost).getAsJsonObject();
return jo;
}