Php 使用cURL发布JSON数据时添加的额外垃圾值

Php 使用cURL发布JSON数据时添加的额外垃圾值,php,json,curl,Php,Json,Curl,我正在尝试使用cURL&JSON创建一个API。 现在,在我的第一个PHP文件中,我将数据作为JSON数据发送,如下所示: public function index() { $url = 'http://172.24.130.50/testbiz/server/login'; $field_string = "{“Request”: “Login”, “Username”: anonymous, “APIAccessKey”: “AW342FFGRTR56RTH”, “GMT

我正在尝试使用cURL&JSON创建一个API。 现在,在我的第一个PHP文件中,我将数据作为JSON数据发送,如下所示:

public function index()
{
    $url = 'http://172.24.130.50/testbiz/server/login';

    $field_string = "{“Request”: “Login”, “Username”: anonymous, “APIAccessKey”: “AW342FFGRTR56RTH”, “GMT-Timestamp”: “1489670000”}";
    $json =  json_encode($field_string);
    //open connection
    $ch = curl_init();

    //set the url, number of POST vars, POST data
    curl_setopt($ch,CURLOPT_URL, $url);
    curl_setopt($ch,CURLOPT_POST, 1);
    curl_setopt($ch,CURLOPT_POSTFIELDS, $json);



    //execute post
    $result = curl_exec($ch);


    echo "<pre>".$result."</pre>";

    //close connection
    curl_close($ch);
}
错误:

$field_string = array("reqest"=>"login", "user_name"=> "anonymous", "API_AccessKey"=> "AW342FFGRTR56RTH", "GMT_Timestamp"=> "1489670000");
    $json =  json_encode($field_string);
数组(“{\u201cRequest\u201d:\u201cLogin\u201d\u201cUsername\u201d:\u201cBIZRTC\u201d\u201cAPIAccessKey\u201d:\u201cAW342FFGRTR56RTH\u201d\u201cGMT时间戳\u201d:\u201c1489670000\u201d}”=>,0=>“”)

即使我在那里解码,我仍然得到
\u
。此外,我不明白这些值是如何附加的:在开始时:
“{\\u201c
和后面的这个
\\u201d}”=>'',0=>'',

这些价值观是什么

如何解码这个JSON

我是否将正确的数据发布到服务器

更新代码

Client.php

public function login()
{


    var_export($_POST);



}

您需要在
json\u encode
中指定数组,而不是字符串

替换:

$field_string = "{“Request”: “Login”, “Username”: anonymous, “APIAccessKey”: “AW342FFGRTR56RTH”, “GMT-Timestamp”: “1489670000”}";
    $json =  json_encode($field_string);
至:

$field_string = array("reqest"=>"login", "user_name"=> "anonymous", "API_AccessKey"=> "AW342FFGRTR56RTH", "GMT_Timestamp"=> "1489670000");
    $json =  json_encode($field_string);
代码中的问题:

$field_string = array("reqest"=>"login", "user_name"=> "anonymous", "API_AccessKey"=> "AW342FFGRTR56RTH", "GMT_Timestamp"=> "1489670000");
    $json =  json_encode($field_string);
  • 不正确的
    json
  • json
    中的无效引号(
  • json\u encode
    中传递字符串

  • 您需要在
    json\u encode
    中指定数组,而不是字符串

    替换:

    $field_string = "{“Request”: “Login”, “Username”: anonymous, “APIAccessKey”: “AW342FFGRTR56RTH”, “GMT-Timestamp”: “1489670000”}";
        $json =  json_encode($field_string);
    
    至:

    $field_string = array("reqest"=>"login", "user_name"=> "anonymous", "API_AccessKey"=> "AW342FFGRTR56RTH", "GMT_Timestamp"=> "1489670000");
        $json =  json_encode($field_string);
    
    代码中的问题:

    $field_string = array("reqest"=>"login", "user_name"=> "anonymous", "API_AccessKey"=> "AW342FFGRTR56RTH", "GMT_Timestamp"=> "1489670000");
        $json =  json_encode($field_string);
    
  • 不正确的
    json
  • json
    中的无效引号(
  • json\u encode
    中传递字符串

  • 这是因为下面的线

        $field_string = '{“Request”: “Login”, “Username”: anonymous, “APIAccessKey”: “AW342FFGRTR56RTH”, “GMT-Timestamp”: “1489670000”}';
            $json =  $field_string;
    //open connection
        $ch = curl_init();
    
        //set the url, number of POST vars, POST data
        curl_setopt($ch,CURLOPT_URL, $url);
        curl_setopt($ch,CURLOPT_POST, 1);
        curl_setopt($ch,CURLOPT_POSTFIELDS, $json);
    
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
        'Content-Type: application/json',                                                                                
        'Content-Length: ' . strlen($json))                                                                       
    );  
    
    假设是这样


    这是因为下面的线

        $field_string = '{“Request”: “Login”, “Username”: anonymous, “APIAccessKey”: “AW342FFGRTR56RTH”, “GMT-Timestamp”: “1489670000”}';
            $json =  $field_string;
    //open connection
        $ch = curl_init();
    
        //set the url, number of POST vars, POST data
        curl_setopt($ch,CURLOPT_URL, $url);
        curl_setopt($ch,CURLOPT_POST, 1);
        curl_setopt($ch,CURLOPT_POSTFIELDS, $json);
    
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
        'Content-Type: application/json',                                                                                
        'Content-Length: ' . strlen($json))                                                                       
    );  
    
    假设是这样


    如果将json字符串存储在变量中,则不需要
    json\u encode()
    ,因为它用于将数组转换为json字符串


    如果将json字符串存储在变量中,则不需要
    json\u encode()
    ,因为它用于将数组转换为json字符串



    它显示了一个错误:消息:使用未定义的常量“Request”-假定“Request”是因为请求是预定义的常量,所以在Request上使用其他内容它表示对于所有请求,username codeditor确实将我显示为字符串它显示为constantNo我认为双引号在某些地方是错误的,因为在sublime文本中,它显示的是常量而不是stringno,qotes将显示相同的错误字符串。请显示错误:消息:使用未定义常量“Request”-假定为“Request”-因为请求是预定义常量,所以在Request上使用其他内容。它表示所有请求,username codeditor确实以字符串的形式显示我,它显示为constantNo我不认为双引号在某些地方是错误的,因为在崇高的文本中,它显示的是常量而不是字符串。qotes将显示相同的错误字符串。请将您得到的错误字符串显示为响应
    “{\\r\\n\\\\\\\\\”请求\\:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\匿名\\“,\\r\\n\\\\\\\\\\\\\\\\\\\\”APIAccessKey\\”:\\\\“AW342FFGRTR56RTH\\”,\\r\\n\\\\\\“GMT时间戳\\”:\\\\\\\“1489670000\\”=>,0=>”,
    我已经更正了您代码中的所有错误。。您请求的api可能工作不正常。尝试使用此
    {“请求”:“登录”、“用户名”:“匿名”、“APIAccessKey”:“AW342FFGRTR56RTH”、“GMT时间戳”:“1489670000”}
    Json。我向您提供了完整的curl请求,请尝试在终端@sahil上进行检查,现在我得到了以下信息:
    “{\\\”请求\\”:\\\“登录\\”、\\“用户名\\”:\\\“匿名\\”、\\“APIAccessKey\”:\\\“AW342FGRTR56RTH\”、\\“GMT时间戳\\”:\\“1489670000\”:“0:”,“0:”“
    当我签入json验证器时,它显示无效。因此我想知道如何一次性删除这些”`我尝试使用stripslashes,但它没有删除所有的slashes。我想问一件事,你又在做
    json\u encode
    ?你不需要做json编码,因为这个请求已经是一个jsonI了,{code>AW342FGRTR56RTH\\\”,\\r\\n\\\\\\\\\\“GMT时间戳\\”:\\\“1489670000\\”\\r\\n}“=>”,0=>”,)我已更正了您代码中的所有错误。。您请求的api可能工作不正常。尝试使用此
    {“请求”:“登录”、“用户名”:“匿名”、“APIAccessKey”:“AW342FFGRTR56RTH”、“GMT时间戳”:“1489670000”}
    Json。我向您提供了完整的curl请求,请尝试在终端@sahil上进行检查,现在我得到了以下信息:
    “{\\\”请求\\”:\\\“登录\\”、\\“用户名\\”:\\\“匿名\\”、\\“APIAccessKey\”:\\\“AW342FGRTR56RTH\”、\\“GMT时间戳\\”:\\“1489670000\”:“0:”,“0:”“
    当我签入json验证器时,它显示无效。因此我想知道如何一次性删除这些”`我尝试使用stripslashes,但它没有删除所有的slashes。我想问一件事,你又在做
    json\u encode
    ?您不需要执行
    json_encode
    ,因为这个
    {“请求”:“登录”、“用户名”:“匿名”、“APIAccessKey”:“AW342FGRTR56RTH”、“GMT时间戳”:“1489670000”}
    已经是一个jsoni获取以下信息:
    数组(“{”请求):{“登录”,“用户名”:“匿名”,“APIAccessKey”:“AW342FGRTR56RTH”,“GMT”:u“1489670000”}'=>'',0=>'',是的,我不知道如何处理
    '=>'',0=>'',如何在另一面打印?它如何显示空的arrayleet us.ok现在做这个$d=array\u key($\u POST)$da=json_解码($d[0]);echo$da->request;它假设返回'login'。我得到以下信息:
    array(“{”请求“:”login“,”用户名“:”匿名“,”APIAccessKey“:”AW342FFGRTR56RTH“,”GMT时间戳“:”1489670000“}=>”,0=>”)
    是的,我不知道如何处理
    ”=>,0=>,