![](/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.