public void login(String username, String password, final APIListener listener){
String url = BASE_URL + "api/login";
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("Context-Type","application/json");
jsonObject.put("email",username);
jsonObject.put("password",password);
//论成功
Response.Listener<JSONObject> successListener = response -> {
try {
User user = User.getUser(response);
listener.onLogin(user);
}
catch (JSONException e) {
try {
User error =User.getErr(response);
listener.onLogin(error);
} catch (JSONException jsonException) {
Toast.makeText(mApplication, "There was an error try again later", Toast.LENGTH_LONG).show();
}
}
};
//错误处理
Response.ErrorListener errorListener = error ->{
if (error instanceof com.android.volley.NoConnectionError) {
Toast.makeText(mApplication, "No internet access", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(mApplication, "There was an error", Toast.LENGTH_LONG).show();
}
};
//Post request
JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url,jsonObject,successListener,errorListener);
mRequestQueue.add(request);
} catch (JSONException e) {
Toast.makeText(mApplication, "json exception", Toast.LENGTH_LONG).show();
}
}
JsonObjectRequest从Request继承了getHeaders()方法,您所需要做的就是重写此方法并返回所需的自定义头:
https://javadoc.io/doc/com.android.volley/volley/1.1.1/com/Android/volley/toolbox/jsonObjectRequest.html
下面是一个用法示例:
String endPointUrl //
JSONObject requestObject //
Response.Listener<JSONObject> listener //
Response.ErrorListener errorListener) //
final String finalUrl = endPointUrl;
final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, finalUrl, requestObject, listener, errorListener) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers= new HashMap<String, String>();
headers.put("User-Agent", "Nintendo Gameboy");
headers.put("Accept-Language", "fr");
return headers;
}
};
mRequestQueue.add(jsonObjectRequest );
我正在尝试创建一个用户登录页面,当我尝试注册时,我得到了这个错误。我想Json对象部分有问题。我尝试在论坛中搜索其他答案,但似乎都没有解决我的问题。请求你帮我解决这个问题。谢谢是提前的。 我的原木猫
我想寻求您的帮助,我在插页中收到了这个< code >错误。 我想出了什么问题,是" 这是我的php:
问题内容: 我在使用排球库发出网络请求时遇到此错误,我遵循以下链接Android Volley- BasicNetwork.performRequest:意外的响应代码400和意外的响应代码404凌空,但在我的情况下它们都不起作用。这是我的请求代码 有谁能告诉我我的代码在哪里做错了?任何帮助都是可观的。 问题答案: 通常,此响应是由发送错误的URL参数引起的。请检查每个参数的拼写,并确保是否以字符
问题陈述: 我正在尝试访问一个REST API,它将使用Volley返回一个用于各种HTTP状态代码(400、403、200等)的JSON对象。
问题内容: 我正在对旧项目进行更新,到目前为止,我对Android的了解不多。在项目中,我们有关于产品的评论部分。 对于较早发送后的评论,我们返回0(某些错误)和1(成功)。 下面是我们正在使用的代码。 现在,我们将返回对象从0/1更改为用户对象。 是否需要将JsonObjectRequest更新为GJSON请求?否则对象也会被JsonObjectRequest解析? 我问是因为当我在上面执行时,
我正在更新旧项目 在早些时候发送后,我们返回了0作为注释(某些错误) 下面是我们使用的代码。 现在我们已经将返回对象从0/1更改为用户对象。 是否需要将JsonObjectRequest更新为GJSON请求?或者对象也会被JsonObjectRequest解析? 我这样问是因为当我执行上面的命令时,我得到的错误如下。 知道我为什么会出现这个错误吗? 注意:此URL对于iPhone应用程序运行良好。