【问题标题】:How to Send Multidimensional Json array through php cURL如何通过 php cURL 发送多维 Json 数组
【发布时间】:2015-01-31 23:48:29
【问题描述】:

/无法通过 php cURL 发送多维 Json 数组。 所以在下面的代码中,我将它作为对象数组发送,这在 python 中很难检索/

   $_api_url="http://example.com" ;
    $params = http_build_query(array('data_Details' => json_encode($request)));
    //initialize and setup the curl handler        
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $_api_url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS,$params);

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

   //close connection
    curl_close($ch);

【问题讨论】:

    标签: php json curl multidimensional-array


    【解决方案1】:

    尝试查看以下示例:POSTing JSON Data With PHP cURL

    有用的摘录:

    $data = array("name" => "Hagrid", "age" => "36");                                                                    
    $data_string = json_encode($data);                                                                                   
    
    $ch = curl_init('http://api.local/rest/users');                                                                      
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
        'Content-Type: application/json',                                                                                
        'Content-Length: ' . strlen($data_string))                                                                       
    );                                                                                                                   
    
    $result = curl_exec($ch);
    

    【讨论】:

    • @ammu 为什么?哪个语句不接受多维数组? json_encode() 是唯一采用数组的语句...
    • 您从提供的代码中收到的错误是什么?
    • 如果我使用此代码并且 $data_string 是多维数组,那么响应将为 NULL
    • @ammu Nope...$data_string 将是一个带有 JSON 表示的多维数组的字符串。我不知道您将请求发送给谁,但请询问他们希望收到什么并将其发布在问题中...如果没有错误,我无法为您提供任何进一步的帮助。
    • 感谢您的回复
    【解决方案2】:
    $data_string = json_encode($request);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
        'Content-Type: application/json',                                                                                
        'Content-Length: ' . strlen($data_string))                                                                       
    );                               
    

    $request 应该是关联数组格式。

    【讨论】:

      猜你喜欢
      • 2016-07-03
      • 1970-01-01
      • 1970-01-01
      • 2014-02-14
      • 2016-12-22
      • 2016-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多