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

$\ php中的POST未使用Volley库JsonObjectRequest(方法POST)填充

曾光远
2023-03-14

让我们从我正在使用的代码开始,我尝试了每一种可能的不同方法来生成“params”。我将其用作HashMap、Json格式以及字符串。我还试图通过创建一个hashmap并返回它来@Override getParams()方法。什么都没用。

下面是调用JsonObjectRequest的函数。

 private void sendJsonObjReq() {

    showProgressDialog();
    Map<String, String> para = new HashMap<>();

    para.put("Condicao", "dea");
    para.put("Field", "1550");
    JSONObject jason = new JSONObject(para);

    String params = jason.toString();
    textView.setText(params);

        JsonObjectRequest jsonReq = new JsonObjectRequest(JsonRequest.Method.POST,
                url_cond1, params,
                new Response.Listener<JSONObject>() {

                    @Override
                    public void onResponse(JSONObject response) {
                        Log.d(AppController.TAG, response.toString());
                        textView.setText(response.toString());

                    /*try {
                        int u = response.getInt("sucess");
                        if(u == 1){

                            JSONArray json = response.optJSONArray("Type");
                            if(json != null) {
                                MakeListHashMap(json);
                            }else{
                                textView.setText("Wrong Parameters");
                            }
                        }else{textView.setText("success is 0");}
                    }catch(JSONException e){
                        Log.e("Error:", e.getMessage());
                        textView.setText("nothing here");
                    }*/
                        hideProgressDialog();
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d(AppController.TAG, "Error:" + error.getMessage());
                showProgressDialog();
            }
        });
        //Add to request queue
    AppController.getInstance().addToRequestQueue(jsonReq, tag_json_obj);

}

网址和其他一切都很好,我已经检查过了,但我只是不明白为什么既不GET或POST方法工作,因为我已经尝试了这两个,但我没有任何成功与他们。我的php代码包括以下内容:

<?php
    $response = array();
//$oi = json_decode($_POST);
//$response["Condicao"] = $_GET["Condicao"];
//$response["Field"] = $_GET["Field"];
    $response["Condicao"] = $_POST["Condicao"];
    $response["Field"] = $_POST["Field"];

    $response['sucess'] = 1;
    $response['other'] = "test";

    echo json_encode($response);
?>

我试过解码,但没有解码,我真的不知道该怎么办。我认为这可能是服务器的问题,但使用应用程序“Postman”,我可以发送GET和POST,响应是我想要的Json数组。

如果我发送key1=Condicao=

我得到了结果

{
     "Condicao": "dea",
     "Field": "1550",
     "sucess": 1,
     "other": "test"
}

编辑:解决方案是:

<?php
    $_POST = json_decode(file_get_contents('php://input'), true);
    $response = array();

    $response["Condicao"] = $_POST["Condicao"];
    $response["Field"] = $_POST["Field"];

    $response['sucess'] = 1;
    $response['other'] = "test";

    echo json_encode($response);
?>

共有1个答案

姚钊
2023-03-14

1.)传递json对象而不是字符串

JsonObjectRequest jsonReq = new JsonObjectRequest(JsonRequest.Method.POST,
                url_cond1, jason ,
               //          ^^^^
                new Response.Listener<JSONObject>() {

2.)在php中作为

<?php
    $response   = array();
    // receive your json object
    $jasonarray = json_decode(file_get_contents('php://input'),true);
    $response["Condicao"] = $jasonarray["Condicao"];
    $response["Field"]    = $jasonarray["Field"];
    $response['sucess']   = 1;
    $response['other']    = "test";

    echo json_encode($response);
?>
 类似资料:
  • 问题内容: 我正在尝试在Volley JsonObjectRequest中发送POST参数。最初, 它 通过遵循官方代码所说的在JsonObjectRequest的构造函数中传递包含参数的JSONObject来为我 工作 。然后一下子它停止工作了,我没有对以前工作的代码进行任何更改。服务器不再识别任何正在发送的POST参数。这是我的代码: 这是服务器上的简单测试器PHP代码: 我得到的答复是 昨天

  • 问题内容: 如何从排球plz帮助发布此请求 js引用了我的jsson对象……我使我的jsson像这样..... 但是它没有响应值请怎么做 问题答案: 首先你的json数据: 然后您的json请求: 注意 标题 如果您想在localhost中进行测试,请使用以下代码并设置您的url以连接您的localhost服务器和ip地址:下面的代码将您的所有请求都放在一个文本文件中,我尝试了一下,即可

  • 把当转换到kotlin我发现一些问题与发送参数与请求我尝试使用自定义请求类扩展从请求这是不是修复我的问题也使用JsonObjectRequest与哈希映射一些错误的参数不发送与请求.也使用JsonObjectRequest与JSONObject也同样的错误是仍然后,我使用Post Man API的一面从API是罚款没有任何问题也当使用StringRequest没有任何问题 我使用JsonObjec

  • 问题内容: 我想通过齐射库 {“ user_id”:12,“ answers”:{“ 11”:3,“ 12”:4,“ 13”:5}}* 将以下格式的jsonobject发送到服务器 * 如果我想使用 StringRequest, 如何使用POST方法将此JsonObject发送到服务器 问题答案: 您可以使用以下工作示例代码。我测试过了 希望这可以帮助! 更新: 要创建JSONObject作为您的

  • 本文向大家介绍django中使用POST方法获取POST数据,包括了django中使用POST方法获取POST数据的使用技巧和注意事项,需要的朋友参考一下 在django中获取post数据,首先要规定post发送的数据类型是什么。 1.获取POST中表单键值数据 如果要在django的POST方法中获取表单数据,则在客户端使用JavaScript发送POST数据前,定义post请求头中的请求数据类

  • 我想使用Volley库发出soap post请求。我正在使用以下代码,并得到错误“HTTP/1.1400错误请求”。在上一篇文章中,我使用的Soap库运行良好,但我需要使用Volley库发出请求。我正在使用以下url“http://test.com/TestApp/Services/service.asmx?op=ForgotPassword" 请帮助我用截击发出post soap请求。