0

我有这些价值观:

$time="2012-12-30 10:00:00";
$hash="DONE_ILK_ONAY_P_KEY__2012_2012-12-30 10:00:00";

而要发送的 JSON 数据是:

jsonRequest:
{
    "company_id":"somevalue",  
    "company _username":"somevalue", 
    "company _password":" somevalue", 
    "profile_id":"somevalue", 
    "profile_mail":"somevalue",
    "profile_info": {
        "name":"somevalue",
        "surname":"somevalue",
        "birthdate":"somevalue",
        "marital_status":"somevalue",
        "education_level":"somevalue",
        "school":"somevalue",
        "city":"somevalue"
    }
}

现在我如何使用 PHP 将这些值发布到另一个 URL 并从它们获取 JSON 响应?

4

2 回答 2

2

带有 jQ​​uery 的 JSON POST:

http://api.jquery.com/jQuery.ajax/

我在另一个堆栈溢出问题上找到了这个例子:

$.ajax({     type: "POST",
    url: "[URL of JSON-aware endpoint]", // your POST target goes here     
    dataType: "json",    
     data: { [$jsonRequest, $time, $hash] }, 
     // message to send goes here    
      success: function (data)     
      {         

            // do something with result     
            } 
       }); 
</script>

您有一个关于如何传递 jsonRequest 以及其他两个参数 $time 和 $hash 的后续问题。

请注意,即使您有 3 个参数 $time、$hash 和 $jsonRequest... 因为 ajax post 参数只是 json... 您可以像我在上面所做的那样在 $.ajax 函数的 data 参数中添加所有三个参数:data: [$jsonRequest, $time, $hash]

我修改了上面的例子来做到这一点。

于 2012-09-25T14:19:41.670 回答
1

仅限服务器端的 PHP 解决方案:

请参阅此链接:http ://themekraft.com/getting-json-data-with-php-curl/

您可以结合使用 PHP curl 和 json_encode 来发送 JSON 并接收 JSON 作为响应。

$ch = curl_init( $json_url );
$json_string = json_encode(array(1 => $jsonRequest, 2 => $time, 3 => $hash));     
$options = array( CURLOPT_RETURNTRANSFER => true,
                  CURLOPT_USERPWD => $username . ":" . $password,
                  CURLOPT_HTTPHEADER => array('Content-type: application/json'),
                  CURLOPT_POSTFIELDS => $json_string);
curl_setopt_array( $ch, $options );    
$result = curl_exec($ch);
$json_result = json_decode($result);
于 2012-09-25T16:10:06.377 回答