/**
* post 调用接口
*/
@Override
public void getinterfaceByYC(XXX base) {
String ywbm = base.getxxx();
String bljd = base.getXX();
String username = "";
String password = "";
String url = "http://xxxx";
byte[] requestBytes;
String result = "";
try {
JSONObject js = new JSONObject();
js.put("xxx", xxx);
js.put("xx", xx);
String string = js.toString();
requestBytes = string.getBytes("utf-8");
HttpClient httpClient = new HttpClient();// 客户端实例化
PostMethod postMethod = new PostMethod(url);
// 设置请求头Authorization
// postMethod.setRequestHeader("Authorization", "Basic " +
// authorization);
// 设置请求头 Content-Type
postMethod.setRequestHeader("Content-Type", "application/json");
InputStream inputStream = new ByteArrayInputStream(requestBytes, 0,
requestBytes.length);
RequestEntity requestEntity = new InputStreamRequestEntity(
inputStream, requestBytes.length,
"application/json; charset=utf-8"); // 请求体
postMethod.setRequestEntity(requestEntity);
httpClient.executeMethod(postMethod);// 执行请求
InputStream soapResponseStream = postMethod
.getResponseBodyAsStream();// 获取返回的流
byte[] datas = null;
datas = readInputStream(soapResponseStream);// 从输入流中读取数据
result = new String(datas, "UTF-8");// 将二进制流转为String
// 打印返回结果
System.out.println("result:------" + result);
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // 将参数转为二进制流
catch (HttpException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**
* String result = {"aaa":"111","bbb":"222"}
* 提取JSON字符串数据
*/
if (result != null && !"".equals(result)) {
result = "[" + result + "]";
JSONArray jsonarray = JSONArray.fromObject(result);
String jsonString = jsonarray.getString(0);
Map deviceMap = new HashMap<>();
Gson gson = new Gson();
deviceMap = gson.fromJson(jsonString, deviceMap.getClass());
System.out.println(deviceMap.get("aaa"));
}
System.out.println(result);
}
/**
* 从输入流中读取数据
*/
private byte[] readInputStream(InputStream soapResponseStream) {
byte[] buffer = new byte[1024];
int len = -1;
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
try {
while ((len = soapResponseStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len);
}
outputStream.close();
soapResponseStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return outputStream.toByteArray();
}
被调用的接口 写法
@ResponseBody
@PostMapping("xxxx")
public JSONObject update_start(@RequestBody JSONObject jsonObject){
System.out.println("1111111");
System.out.println(jsonObject.toString());
JSONObject json = new JSONObject();
json.put("aaa","111");
json.put("bbb","222");
System.out.println(json.toString());
return json;
}