gpt4 book ai didi

Android Volley error.getMessage() 为空白

转载 作者:可可西里 更新时间:2023-11-01 18:51:38 25 4
gpt4 key购买 nike

所以我正在向我的服务器发送 POST JSonObjectRequest,当它成功时一切正常并且信息被发布,但是如果有错误并且我尝试在 toast 中显示它,它显示为空白。这是我的要求:

private void logUserIn() {
final String URL = Globals.BASE_URL +"/auth/login/";
// Post params to be sent to the server
HashMap<String, String> params = new HashMap<String, String>();
params.put("username", username.getText().toString());
params.put("password", password.getText().toString());

JsonObjectRequest req = new JsonObjectRequest(URL, new JSONObject(params),
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
Log.d("Log In User", response.toString());

//logged in db, changes screens
Intent nextScreen = new Intent(getApplicationContext(), MyProfile.class);
startActivity(nextScreen);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show();
VolleyLog.e("Error: ", error.getMessage());
}
});

// add the request object to the queue to be executed
Globals.mRequestQueue.add(req);
}

error.getMessage() 总是空白。这是我在服务器返回错误时的响应(使用 CURL 测试):

{ “非字段错误”:[ “无法使用提供的凭据登录。” ]

我似乎无法打印此消息。我错过了什么? POST 有效,但错误响应显示为空白...

最佳答案

VolleyError 对象有一个 networkResponse 引用,尝试检查它看看是否可以从那里获得一些有用的信息。

@Override
public void onErrorResponse(VolleyError error) {
if (error == null || error.networkResponse == null) {
return;
}

String body;
//get status code here
final String statusCode = String.valueOf(error.networkResponse.statusCode);
//get response body and parse with appropriate encoding
try {
body = new String(error.networkResponse.data,"UTF-8");
} catch (UnsupportedEncodingException e) {
// exception
}

//do stuff with the body...
}

关于Android Volley error.getMessage() 为空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30721475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com