2 回答
TA贡献1775条经验 获得超11个赞
StringRequest用于GET请求并发出POST请求,请使用JsonObjectRequest。
将用户名和密码发送到服务器的示例发布请求。
private void login(final String email, final String password) {
loadingBar.setVisibility(View.VISIBLE);
loginButton.setVisibility(View.GONE);
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("username", email);
jsonObject.put("password", password);
} catch (JSONException e) {
e.printStackTrace();
}
final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, URL_LOGIN,
jsonObject, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
String success = response.getString("success");
JSONArray jsonArray = response.getJSONArray("login");
if (success.equals("1")) {
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject object = jsonArray.getJSONObject(i);
String name = object.getString("name").trim();
String email = object.getString("email").trim();
Intent intent = new Intent(LoginActivity.this,
MainActivity.class);
intent.putExtra("name", name);
intent.putExtra("email", email);
startActivity(intent);
loadingBar.setVisibility(View.GONE);
}
}
} catch (JSONException e) {
e.printStackTrace();
loadingBar.setVisibility(View.GONE);
loginButton.setVisibility(View.VISIBLE);
Toast.makeText(LoginActivity.this, "Error " + e.toString(),
Toast.LENGTH_SHORT).show();
}
Log.d(TAG, "Info" + response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
loadingBar.setVisibility(View.GONE);
loginButton.setVisibility(View.VISIBLE);
Toast.makeText(LoginActivity.this, "Error " + error.toString(),
Toast.LENGTH_SHORT).show();
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("Content-Type", "application/json");
return params;
}
};
// Make the request
Volley.newRequestQueue(this).add(jsonObjectRequest);
}
TA贡献1796条经验 获得超4个赞
您的登录操作似乎没有成功。当你得到 0 表示成功"login":[],"success":"0","message":"error"
你应该得到"success":"1"。所以,我想你需要再次检查你的数据。
我将向您推荐几点,它们将在处理 API 时为您提供帮助
始终使用POSTMAN检查您的 API 请求/响应
使用模型来表示您的响应,而不是
JSONObject
,JSONArray
,..ext。使用简单且自定义的 http/https 库。&我会推荐这个
快乐编码
- 2 回答
- 0 关注
- 109 浏览
添加回答
举报