gpt4 book ai didi

java - Android Volley : BasicNetwork. performRequest:意外的响应代码 404

转载 作者:太空狗 更新时间:2023-10-29 13:53:07 24 4
gpt4 key购买 nike

我想从数据库中获取用户的信息并显示出来,但我一直收到这个错误:

BasicNetwork.performRequest: Unexpected response code 404

这是我的javacode:

加载方式:

public void loadUserProfile() {

Response.Listener<String> responseListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse = new JSONObject(response);
idTV.setText(jsonResponse.getString("_id"));
nameTV.setText(jsonResponse.getString("name"));
firstNameTV.setText(jsonResponse.getString("firstName"));
emailTV.setText(jsonResponse.getString("email"));
sexTV.setText(jsonResponse.getString("sex"));
yearTV.setText(jsonResponse.getString("year"));
cursusTV.setText(jsonResponse.getString("cursus"));
} catch (JSONException e) {
onLoadProfileFail();
}
}
};
ProfileRequest profileRequest = new ProfileRequest(user_id, responseListener);
RequestQueue queue = Volley.newRequestQueue(ProfileActivity.this);
queue.add(profileRequest);
}

请求类

class ProfileRequest extends StringRequest {
private static final String USER_PROFILE_REQUEST = "http://[ipaddress]:8080/users/:id";
private Map<String, String> params;

public ProfileRequest(String id, Response.Listener<String> listener) {
super(Method.POST, USER_PROFILE_REQUEST, listener, null);
params = new HashMap<>();
params.put("id", id);
}

@Override
public Map<String, String> getParams() {
return params;
}
}

应用程序.js

router.get('/users/:id', function(req, res) {
User.find({ _id: "ie00847" }, function(err, user) {
if (err)
res.send(err);
res.json(user);
});
});

最佳答案

您收到 404 错误是因为您正在使用不可用的方法 (POST) 访问路由,因为在 app.js 文件中您为 get 请求定义了一个函数,而不是POST 请求,因此您需要将 Android 代码更新为 GET 请求。类似下面的内容,

class ProfileRequest extends StringRequest {
private static final String USER_PROFILE_REQUEST = "http://[ipaddress]:8080/users";
private Map<String, String> params;

public ProfileRequest(String id, Response.Listener<String> listener) {
super(Method.GET, USER_PROFILE_REQUEST + "/" + id, listener, null);
}
}

另请注意,无需覆盖 getParams() 方法,因为您不再发送 POST 请求。此外,您不能将参数添加到 GET 请求,除非通过硬编码 URL 中的值而不是通过 Map 对象。

希望这有帮助:)

关于java - Android Volley : BasicNetwork. performRequest:意外的响应代码 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43262375/

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