![](/img/trans.png)
[英]java.lang.NullPointerException when using getStringArray
[英]java.lang.NullPointerException when POST with AsyncHttpClient
我有一個端點/test
期望Map
:
@POST("/hello")
@PermitAll
public JSONObject test(Map param) throws JsonParseException {
String elementName = param.get("name").toString();
String elem = param.get("elem").toString();
JSONObject json=new JSONObject();
try {
json.put("id",1);
} catch (JSONException e) {
e.printStackTrace();
}
return json;
}
我正在使用AsyncHttpClient
發送異步POST(postin JSON):
public static void asyncCallPost(JSONObject jsonData) throws Exception {
AsyncHttpClient client = new AsyncHttpClient();
try {
Response response = client.preparePost(url)
.addHeader("Content-Type", "application/json")
.addHeader("Content-Length", "" + jsonData.length())
.setBody(jsonData.toString()).execute().get();
if (response.getStatusCode() != 200) {
throw new Exception("Error ");
}
} finally {
client.close();
}
}
但是我正在獲取java.lang.NullPointerException
。 是因為我沒有將任何Map傳遞給/hello
嗎? 如果是這樣,如何將jsonData
作為POST
Map
到端點?
如果沒有更多信息,我無法告訴您,但是我懷疑以下方面需要更改;
String elementName = param.get("name").toString();
String elem = param.get("elem").toString();
至
String elementName;
if(param.get("name") != null){
elementName = param.get("name").toString();
}
String elem;
if(param.get("elem") != null){
elem = param.get("elem").toString();
}
原因是param.get(“ name”)返回一個您要在其上運行toString的null,因此該null指針異常。
您正在為主體設置一個JSON字符串,這就是Map是否為null或為空或充滿垃圾的原因(我沒有檢查自己)。
映射表示已發布的鍵/值對。 要使地圖非空,您必須將例如name=myname&elem=myelement
為application/x-www-form-urlencoded
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.