java获取的HttpsURLConnection数据不足写入错误
我想通过post方法调用httpurl并使用java获取的HttpsURLConnection数据不足写入错误,java,spring,httpsurlconnection,Java,Spring,Httpsurlconnection,我想通过post方法调用httpurl并使用Httpsurlconnection获取一些json负载,并发送body json和一些头参数。下面是我的代码,我得到的错误数据不足 JAVA public Map<String, Object> makeHttpPostRequestCall(String httpURL, Map<String, Object> apiParamsMap) { logger.info("call request call");
Httpsurlconnection
获取一些json负载,并发送body json和一些头参数。下面是我的代码,我得到的错误数据不足
JAVA
public Map<String, Object> makeHttpPostRequestCall(String httpURL, Map<String, Object> apiParamsMap) {
logger.info("call request call");
String nonce = UUID.randomUUID().toString();
String encodedNonce = Base64.getEncoder().encodeToString(nonce.getBytes());
String token = UtilService.getString(apiParamsMap, RyderConnectConstants.PRIMARY_KEY);
JSONObject body = new JSONObject();
body.put("startDateTime", "2017-07-21T17:32:28Z");
body.put("endDateTime", "2017-07-22T17:32:28Z");
BufferedReader reader = null;
URL url;
Map<String, Object> feedPaylaod = null;
try {
url = new URL(httpURL);
URLConnection connection = url.openConnection();
HttpsURLConnection httpConn = (HttpsURLConnection) connection;
httpConn.setRequestProperty("Content-Type", "application/json");
httpConn.setRequestProperty("nonce", encodedNonce);
httpConn.setRequestProperty("Ocp-Apim-Subscription-Key", token);
httpConn.setDoOutput(true);
httpConn.setRequestProperty("Body", body.toString());
logger.info("pp1");
httpConn.setRequestProperty( "charset", "utf-8");
httpConn.setFixedLengthStreamingMode(body.toString().length());
httpConn.setRequestMethod("POST");
logger.info("pp");
DataOutputStream out = new DataOutputStream(httpConn.getOutputStream());
out.write(body.toString());
out.close();
reader = new BufferedReader(new InputStreamReader(httpConn.getInputStream()));
logger.info("reader"+reader);
String line = null;
StringWriter out = new StringWriter(connection.getContentLength() > 0 ? connection.getContentLength() : 20480);
logger.info("out"+out);
while ((line = reader.readLine()) != null) {
out.append(line);
}
String response = out.toString();
feedPaylaod = stringToMap(response);
} catch (Exception e) {
feedPaylaod = Maps.newHashMap();
logger.error(e.getMessage());
}
return feedPaylaod;
}
公共映射makeHttpPostRequestCall(字符串httpURL,映射apiParamsMap){
logger.info(“呼叫请求呼叫”);
字符串nonce=UUID.randomUUID().toString();
字符串encodedNonce=Base64.getEncoder().encodeToString(nonce.getBytes());
String-token=UtilService.getString(apiParamsMap,RyderConnectConstants.PRIMARY_键);
JSONObject body=新的JSONObject();
body.put(“startDateTime”,“2017-07-21T17:32:28Z”);
正文.put(“endDateTime”,“2017-07-22T17:32:28Z”);
BufferedReader reader=null;
网址;
Map feedPaylaod=null;
试一试{
url=新url(httpURL);
URLConnection=url.openConnection();
HttpsURLConnection httpConn=(HttpsURLConnection)连接;
setRequestProperty(“内容类型”、“应用程序/json”);
httpConn.setRequestProperty(“nonce”,encodednone);
httpConn.setRequestProperty(“Ocp Apim订阅密钥”,令牌);
httpConn.setDoOutput(真);
httpConn.setRequestProperty(“Body”,Body.toString());
logger.info(“pp1”);
httpConn.setRequestProperty(“字符集”、“utf-8”);
httpConn.setFixedLengthStreamingMode(body.toString().length());
httpConn.setRequestMethod(“POST”);
logger.info(“pp”);
DataOutputStream out=新的DataOutputStream(httpConn.getOutputStream());
out.write(body.toString());
out.close();
reader=新的BufferedReader(新的InputStreamReader(httpConn.getInputStream());
logger.info(“读卡器”+读卡器);
字符串行=null;
StringWriter out=新的StringWriter(connection.getContentLength()>0?connection.getContentLength():20480);
logger.info(“输出”+输出);
而((line=reader.readLine())!=null){
out.追加(行);
}
字符串响应=out.toString();
feedPaylaod=stringToMap(响应);
}捕获(例外e){
feedPaylaod=Maps.newHashMap();
logger.error(例如getMessage());
}
返回feedPaylaod;
}