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

Kotlin中的Android截击JsonObjectRequest Post prameter

桑鸿志
2023-03-14

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

我使用JsonObjectRequest的第一个代码是

val url = "http://10.0.2.2/machine_project/includeJSON/system_machine.php"
val ahOBJ = JSONObject()
ahOBJ.put("dd", 2)

Log.d("TAG","kotJson")
val queu = Volley.newRequestQueue(this)
val ahReq = JsonObjectRequest(Request.Method.POST, url, ahOBJ, Response.Listener { response ->
    val str = response.toString()
    Log.d("TAG","response: $str")
}, Response.ErrorListener {
    error ->
    Log.d("TAG","response: ${error.message}")
})
queu.add(ahReq)

第二个代码是

val jr:RequestQueue = Volley.newRequestQueue(this)
            val params = HashMap<String,String>()
            params["dd"] = "2"
            Log.d("TAGTest", "Ready to go")
            val jsObj = JsonObjectRequest(Request.Method.POST,
                urlUP,
                JSONObject(params),
                Response.Listener
                {
                    response ->
                    Log.d("TAGTest", response.toString())
                },
                Response.ErrorListener {
                    error ->
                    Log.d("TAGTest", "error: ${error.message}")
                })
            jr.add(jsObj)

所有的结果都是

{"error":true,"msg":"All filed required"}

这个结果来自后端API

API是

$response = array();
if($_SERVER['REQUEST_METHOD'] == 'POST'){

    if( isset($_POST['dd'])){

        require_once ('systemMachineAPI.php');

        $result = get_sm();
        if($result != NULL){
            $response['error'] = false;
            $response['msg'] = $result;
        }else{
            $response['error'] = true;
            $response['msg'] = 'We Found Some Mistake';
        }
    }else{
        $response['error'] = true;
        $response['msg'] = 'All filed required';
    }

}else{
    $response['error'] = true;
    $response['msg'] = 'Cannot connect to server';
}

如果有人能解决这个问题,或者试着用科特林·波斯特·普拉米截击,请帮助我

共有1个答案

林元明
2023-03-14

我知道这是一个老帖子,我希望你已经找到了摆脱困境的方法,但我正在发布我的解决方案,以防其他人来到这里。

我认为,在php方面,你错过了解码发布的字符串。

在Kotlin身上这样做

val ahOBJ=JSONObject()

把(dd,2)

您提供了一个要发送到php脚本的json样式的对象,因此在php端,您将获得一个json样式的字符串来处理,而不是POST参数。

在PHP端尝试

// getting the posted data and decoding it to a json object
$postedContent = json_decode(file_get_contents("php://input"));

// $postedContent should now contain your 'dd' property

if (property_exists($postedContent, 'dd'))
{
    // yes, we got our property 
    echo $postedContent->dd;
}
 类似资料:
  • 我使用反应原生66时运行得到错误 Yarn run v1.22.17$react-原生run-android info运行jetifier将库迁移到AndroidX。您可以使用“--no-jetifier”标志禁用它。Jetifier发现1428个文件要转发jetify。使用4个工作人员... info JS服务器已经运行。信息安装应用程序...配置项目:react-nate-fire base

  • 我正在尝试使用Volley获取JSON对象以创建动态自动完成,但在使用Volley请求时,我在日志cat中看到: 截击:[486]基本网络。logSlowRequests:请求的HTTP响应= 这些答案并没有解决我的问题。 这里是初始化请求队列的Singleton类: 发出请求的方法: 下面是HTTP Connector类:

  • 我想从URL获取一些数据,但服务器速度非常慢。。。因此,每当我使用凌空截击获取数据时,我都会得到TimeOurError,在服务器速度较慢的情况下,我是否可以处理凌空截击应该尝试获取数据多长时间。。。它只需要很少的时间,我也希望不断运行这个请求来检查数据,我计划使用计时器来完成它。。。可以使用计时器连续检查数据吗? 这是我现在的截击请求。。。它适用于其他URL 我需要连续调用这些函数(在应用程序内

  • 我正在用GoogleVolley Api创建一个android应用程序,它处理我的应用程序和php脚本之间的连接。出于某种原因,该应用程序没有向我的服务器发送任何数据,也许这里的某个人可以找到它? 我的方法被正确调用,但是当我尝试打印它时,它返回null!一切实际上都在工作,除了数据没有正确传递,我相信,因为我的php脚本抱怨变量为空

  • 我正在尝试使用Volley库与我的RESTful API通信。 当我要持票人代币时,我必须在身体里贴上绳子。字符串应如下所示:grant_type=password 有关WebApi个人帐户的更多信息:http://www.asp.net/web-api/overview/security/individual-accounts-in-web-api 不幸的是,我不知道如何解决它... 我正在尝试

  • 我在我的应用程序中使用凌空网络库。 问题在于,当网络连接缓慢时,它会多次发送数据。 在我搜索了这个问题后,我能找到的关于这个问题的信息如下: 但是我不能编辑我的截击库Hurkstack类。 它说: 这个类文件的jar属于容器android私有库,它不允许修改它条目上的源附件。 我该怎么办有人能帮我吗 我有下面的代码,我应该在哪里修改。