方法一:
传统也是最简便的client方式
String url = "http://127.0.0.1:9091/rest/test";//随便写的一个url,具体需要根据自己项目实际需求来
String json = JSONObject.toJSONString(XXBean);// XXBean指的是自己封装的rest传输对象的实体类
Client client = ClientBuilder.newClient();
WebTarget target = client.target(url);
Response response = target.request().buildPost(Entity.entity(json, MediaType.APPLICATION_JSON+";charset=UTF-8")).invoke();
logger.error("------报送报文结果为"+response.getStatus());
MultivaluedMap<String, Object> ss = response.getHeaders();
logger.error("------报送接口返回报文头为"+JSONObject.toJSONString(ss));
response.close();
方法二:
HttpURLConnection 方式
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
String url = "http://127.0.0.1:9091/rest/test";//随便写的一个url,具体需要根据自己项目实际需求来
String json = JSONObject.toJSONString(XXBean);// XXBean指的是自己封装的rest传输对象的实体类
try {
URL restServiceURL = new URL(url);
HttpURLConnection httpConnection = (HttpURLConnection) restServiceURL.openConnection();
// 设置请求方式 GET POST DELETE PUT
httpConnection.setRequestMethod("POST");
// 打开输入/出开关
httpConnection.setDoOutput(true);
httpConnection.setDoInput(true);
//设置接收格式
httpConnection.setRequestProperty("Accept", "application/json");
httpConnection.setRequestProperty("Content-Type", "application/json");
// 传递参数
OutputStream outputStream = httpConnection.getOutputStream();
outputStream.write(json.getBytes());
outputStream.flush();
outputStream.close();
String response = httpConnection.getResponseMessage();//200 时 Ok,其他 BAD REQUEST
logger.error("-------response----" + response);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.setLength(0);
BufferedReader responseBuffer;
if (200 == httpConnection.getResponseCode()) {
responseBuffer = new BufferedReader(
new InputStreamReader((httpConnection.getInputStream())));
String temp = "";
logger.error("Output from Server: \n");
while ((temp = responseBuffer.readLine()) != null) {
stringBuilder.append(temp);
logger.error(temp);
}
responseBuffer.close();
} else {
responseBuffer = new BufferedReader(
new InputStreamReader((httpConnection.getErrorStream())));
String temp = "";
while ((temp = responseBuffer.readLine()) != null) {
stringBuilder.append(temp);
}
}
responseBuffer.close();
httpConnection.disconnect();//关闭连接
} catch (MalformedURLException e) {
logger.error("报送接口异常",e);
} catch (ProtocolException e) {
logger.error("报送接口异常",e);
} catch (IOException e) {
logger.error("报送接口异常",e);
}
方法三:
RestTemplate方式
String url = "http://127.0.0.1:9091/rest/test";//随便写的一个url,具体需要根据自己项目实际需求来
String json = JSONObject.toJSONString(XXBean);// XXBean指的是自己封装的rest传输对象的实体类
RestTemplate restTemplate = RestTemplateClient.instance("UTF-8");
HttpHeaders headers = new HttpHeaders();
// 定义请求参数类型,这里用json所以是MediaType.APPLICATION_JSON
MediaType mediaType = MediaType
.parseMediaType(MediaType.APPLICATION_FORM_URLENCODED_VALUE+";charset=UTF-8");
headers.setContentType(mediaType);
String httpPort = ReportDataConfig.getReportDataConfig().getHttpProt();
HttpEntity<String> entity = new HttpEntity<String>(json, headers);
String returnResult = restTemplate.postForObject(url, entity, String.class);
方法四:
import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
String url = "http://127.0.0.1:9091/rest/test";//随便写的一个url,具体需要根据自己项目实际需求来
String json = JSONObject.toJSONString(XXBean);// XXBean指的是自己封装的rest传输对象的实体类
Map<String, String> map = new HashMap<>();
map.put("type", "test");
map.put("body", json);
HttpPost post = null;
// 创建HttpClient实例
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(900000)
.setConnectTimeout(3000).build();
CloseableHttpClient httpClient = HttpClients.createDefault();
post = new HttpPost(url);
List<NameValuePair> t_formparams = new ArrayList<NameValuePair>();
for (String t_temp : map.keySet()) {
t_formparams.add(new BasicNameValuePair(t_temp, map.get(t_temp)));
}
UrlEncodedFormEntity t_requestEntity = new UrlEncodedFormEntity(t_formparams, Consts.UTF_8);
t_requestEntity.setChunked(true);
post.setConfig(requestConfig);
post.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
post.setEntity(t_requestEntity);
org.apache.http.HttpResponse t_response = httpClient.execute(post);
HttpEntity t_entity = t_response.getEntity();
post.releaseConnection();
String result = EntityUtils.toString(t_response.getEntity());