当前位置: 首页 > 知识库问答 >
问题:

POST方法的意外响应代码500

冯俊英
2023-03-14

我正在更新旧项目

在早些时候发送后,我们返回了0作为注释(某些错误)

下面是我们使用的代码。

final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
    Method.POST,
    act.getString(R.string.CommentForUserURL),
    null, new Response.Listener<JSONObject>() {

    @Override
    public void onResponse(
            JSONObject response) {

        Log.d("response done", "done===" + response);

        mloading.setVisibility(View.GONE);
        if (response != null) {
            Comment obj = new Comment();
            JSONObject jsonObject = response;
            try {
                obj.setComment(jsonObject
                        .getString("Comment"));

现在我们已经将返回对象从0/1更改为用户对象。

是否需要将JsonObjectRequest更新为GJSON请求?或者对象也会被JsonObjectRequest解析?

我这样问是因为当我执行上面的命令时,我得到的错误如下。

01-25 12:30:21.754: E/Volley(16487): [10114] BasicNetwork.performRequest: 
Unexpected response code 500 for 
http://new.souqalharim.com/add/CommentForMerchant

知道我为什么会出现这个错误吗?

注意:此URL对于iPhone应用程序运行良好。

这是post方法,所以没有完整的url。要添加的参数很少,如?comment=MyComment

我有其他的方法

@Override
protected Map<String, String> getParams()
        throws AuthFailureError {
    Map<String, String> params = new HashMap<String, String>();
    params.put("productId", productId.toString());
    params.put("userId",
            mSessionManager.getUserCode().toString());
    params.put("comment", GlobalFunctions
            .EncodeParameter(med_comments
                    .getText().toString()));



    return params;
}

完整的url如下所示。

http://new.souqalharim.com/add/CommentForUser?productId=325

我在Mozilla RESTClient中测试了它,效果很好。

进一步检查后,我发现受保护的地图


共有2个答案

司空凌
2023-03-14

实际上,500表示内部服务器错误,这是由您正在调用的RESTAPI引起的,而不是由于截击,所以请检查后端代码。

施选
2023-03-14

问题就在下面。

final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
    Method.POST,
    act.getString(R.string.CommentForUserURL),
    null, new Response.Listener<JSONObject>() {
    ^^^^

应该是

final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
    Method.POST,
    act.getString(R.string.CommentForUserURL),
    new JSONObject(params), new Response.Listener<JSONObject>() {
    ^^^^^^^^^^^^^^^^^^^^^^

受保护映射复制代码

就这样!!!

原因如下。

JsonObjectRequest是扩展的JsonRequest,它直接覆盖getBody()方法,所以你的getParam()永远不会调用,我建议你扩展StringRequest而不是JsonObjectRequest。

您可以查看此答案以了解更多详细信息。

 类似资料:
  • 问题内容: 我正在对旧项目进行更新,到目前为止,我对Android的了解不多。在项目中,我们有关于产品的评论部分。 对于较早发送后的评论,我们返回0(某些错误)和1(成功)。 下面是我们正在使用的代码。 现在,我们将返回对象从0/1更改为用户对象。 是否需要将JsonObjectRequest更新为GJSON请求?否则对象也会被JsonObjectRequest解析? 我问是因为当我在上面执行时,

  • 我正在尝试创建一个用户登录页面,当我尝试注册时,我得到了这个错误。我想Json对象部分有问题。我尝试在论坛中搜索其他答案,但似乎都没有解决我的问题。请求你帮我解决这个问题。谢谢是提前的。 我的原木猫

  • 问题内容: 我在使用排球库发出网络请求时遇到此错误,我遵循以下链接Android Volley- BasicNetwork.performRequest:意外的响应代码400和意外的响应代码404凌空,但在我的情况下它们都不起作用。这是我的请求代码 有谁能告诉我我的代码在哪里做错了?任何帮助都是可观的。 问题答案: 通常,此响应是由发送错误的URL参数引起的。请检查每个参数的拼写,并确保是否以字符

  • 问题陈述: 我正在尝试访问一个REST API,它将使用Volley返回一个用于各种HTTP状态代码(400、403、200等)的JSON对象。