我试图发送一个GET请求,传递一个身份验证令牌头以获取一些JSON数据,但是我得到了所有的java.lang.NullPointerExceptions。我已经尝试使用JSONObjectRequest、JSONArrayRequest甚至StringRequest。
下面是代码(JSONObjectRequest和JSONArrayRequest对测试进行了注释):
public void getJSON() {
final String authToken = getAuth();
String novaURL = getNova();
novaURL = novaURL+"/servers";
/**
___________________________________________________________________
JsonArrayRequest getRequest = new JsonArrayRequest(novaURL,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d("Nova", response.toString());
setNovaJSON(response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("Nova", "Error: " + error.getMessage());
}
}
){
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("X-Auth-Token", authToken);
params.put("Accept", "application/json");
params.put("Content-Type", "application/json; charset=utf-8");
return params;
}
};
RequestQueue queue = Volley.newRequestQueue(this);
queue.add(getRequest);
}
JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, novaURL, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray servers = response.getJSONArray("servers");
} catch (JSONException e) {
Toast.makeText(getApplicationContext(), "Error to get Instances", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
Log.d("Nova", response.toString());
setNovaJSON(response.toString());
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("Nova", "Error: " + error.getMessage());
}
}
) {
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("X-Auth-Token", authToken);
params.put("Accept", "application/json");
params.put("Content-Type", "application/json; charset=utf-8");
return params;
}
};
________________________________________________________________ **/
StringRequest getRequest = new StringRequest(Request.Method.GET,
novaURL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("Nova", response.toString());
setNovaJSON(response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("Nova", "Error: " + error.getMessage());
}
}) {
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("X-Auth-Token", authToken);
params.put("Accept", "application/json");
params.put("Content-Type", "application/json; charset=utf-8");
return params;
}
};
RequestQueue queue = Volley.newRequestQueue(this);
queue.add(getRequest);
}
RequestQueue queue = Volley.newRequestQueue(this);
我可能找到了有用的东西。我移动了行“requestqueue queue=volley.newrequestqueue(this);”在方法的顶部,使用其他变量声明,并且在调试之后,它似乎在到达JSONObjectRequest或StringRequest命令之前就崩溃了。好像排队有问题。
**更新2:
我按照以下步骤修复了队列问题:https://developer.android.com/training/volley/requestqueue.html
java.lang.NullPointerException
at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
at org.json.JSONTokener.nextValue(JSONTokener.java:94)
at org.json.JSONObject.<init>(JSONObject.java:155)
at org.json.JSONObject.<init>(JSONObject.java:172)
似乎volley.NewRequestQueue(this)的“this”是null。
问题内容: 我有一个函数,在输入更改时运行ajax调用。 但是,有可能在之前的ajax调用完成之前再次触发该函数。 我的问题是,在开始新的ajax调用之前,我将如何中止它?不使用全局变量。(请参阅此处的类似问题的答案) 我当前代码的jsfiddle: Javascript: HTML: 问题答案:
这部分文档描述了在 Flask 0.7 中的行为,与旧的行为基本一致,但有细小微妙的 差异。 这里推荐先阅读 应用上下文 章节。 深入上下文作用域 比如说你有一个应用函数返回用户应该跳转到的 URL 。想象它总是会跳转到 URL 的 next 参数,或 HTTP referrer ,或索引页: from flask import request, url_for def redirect_url
我有2个微服务(A和B)。 有一个接受POST请求的endpoint。当用户发出发布请求时,会发生以下情况: 服务A从POST请求正文中获取对象并将其存储在数据库中。 服务A将对象转换为不同的对象。新对象通过泽西HTTP客户端发送到服务B。 步骤 2 发生在我创建的 Java 线程池(Executors.new缓存线程池)上。通过在新线程上执行步骤 2,服务 A 的终结点的响应时间不受影响。 但是
再一次在布罗斯沃尔,一切都很完美。在PhoneGap应用程序上仅GET request有效
我有一个具有OAuth2授权的Spring Cloud应用程序: 我添加了这个安全配置: github:https://github.com/rcbandit111/OAuth2/blob/master/src/main/java/org/engine/security/WebSecurityConfig.java 打开Angular应用程序时,出现访问错误: 您知道我需要应用什么配置才能在没有强
我正在尝试一些非常简单的方法,但由于某些原因它不起作用: 启动index.html时出现的错误: 无法加载文件:///e:/dev/eclipse/syrilab/pages/header.html:跨源请求仅支持协议方案:http、data、chrome、chrome-extension、HTTPS。 无法加载文件:///e:/dev/eclipse/syrilab/pages/home.htm