我想送{「名」:「超級用戶」,「狀態」:1}但是當我送我得到這個錯誤發送的HTTP PUT請求中的一個整數的Java
Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:78)
at java.io.InputStreamReader.<init>(InputStreamReader.java:72)
at com.service.RoleService.updateRole(RoleService.java:145)
at com.service.RoleService.main(RoleService.java:176)
這裏是代碼
URL url = new URL("http://localhost:31109/user/role/"+role_id);
HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();
httpConnection.setDoOutput(true);
httpConnection.setRequestMethod("PUT");
httpConnection.setRequestProperty("Content-Type", "application/json");
httpConnection.setConnectTimeout(15000);
String input = "{\"name\":\""+name+"\",\"status\":"+status+"}";
System.out.println(input);
OutputStream outputStream = httpConnection.getOutputStream();
outputStream.write(input.getBytes());
outputStream.flush();
if(httpConnection.getResponseCode() !=200){
String error_resp;
BufferedReader error_responseBuffer = new BufferedReader(new InputStreamReader(
(httpConnection.getErrorStream())));
while((error_resp = error_responseBuffer.readLine()) != null){
System.out.println("Error responsecode => "+httpConnection.getResponseCode()+"error => "+error_resp);
output = new JSONObject(error_resp);
}
}else {
BufferedReader responseBuffer = new BufferedReader(new InputStreamReader(
(httpConnection.getInputStream())));
String httpresponse;
StringBuilder content = new StringBuilder();
while((httpresponse = responseBuffer.readLine()) != null){
content.append(httpresponse);
}
output = new JSONObject(content.toString());
}
httpConnection.disconnect();
然而,當我送{「名」:「超級用戶」,「狀態」:「1」}請求是確定,但API有需要它發送一個驗證作爲一個整數並拒絕它。我不能改變API。
如果你的代碼與一個輸入而不是另一個,這意味着你的代碼是好的,問題是你要發送到 – nafas
的API您的代碼沒有演示您在創建Reader的位置,並且獲取NullPointerException – ControlAltDel
是您顯示的客戶端還是服務器端的錯誤? api期望是一個整數?你有控制服務器端嗎?你應該改善你的問題 – nandsito