一、HttpClient
1、代码实现
public String httpClientSendMessage(String object, String serviceAdd, String servicePort) throws IOException {
String url = "http://" + serviceAdd + ":" + servicePort + "/#/app/";
String result = "";
// 创建httpclient对象
CloseableHttpClient httpClient = HttpClients.createDefault();
// 创建post方式请求对象
HttpPost httpPost = new HttpPost(url);
// 设置传输超时时间
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(2000).build();
httpPost.setConfig(requestConfig);
// 设置参数到请求对象中
StringEntity stringEntity = new StringEntity(object.toString(), ContentType.APPLICATION_JSON);
stringEntity.setContentEncoding("utf-8");
httpPost.setEntity(stringEntity);
// 执行请求操作,并拿到结果(同步阻塞)
CloseableHttpResponse response = httpClient.execute(httpPost);
// 获取结果实体
// 判断网络连接状态码是否正常(0--200都数正常)
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
result = EntityUtils.toString(response.getEntity(), "utf-8");
}
// 释放链接
response.close();
return result;
}
注:该url是将要访问的路径地址
2、测试
二、Socket
1、代码实现
public String socketSendMessage(String sendData, String serviceAdd, String servicePort) {
String result = "";
Socket socket = null;
OutputStreamWriter osw = null;
BufferedWriter rw = null;
InputStreamReader isr = null;
BufferedReader br = null;
String resultData = "";
try {
// socket发送
socket = new Socket(serviceAdd, Integer.valueOf(servicePort));
osw = new OutputStreamWriter(socket.getOutputStream());
rw = new BufferedWriter(osw);
rw.write(sendData.toString());
rw.flush();
socket.shutdownOutput();
//接受服务端返回数据
isr = new InputStreamReader(socket.getInputStream());
br = new BufferedReader(isr);
while ((result=br.readLine()) != null) {
resultData=resultData+result;
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (socket != null) {
try {
rw.close();
br.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return resultData;
}
2、测试
三、依赖
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.5</version>
</dependency>