如何使用PHP将Json值和其他一些值POST到另一个url

时间:2012-09-25 14:13:12

标签: php json post

我有这些价值观:

$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响应?

2 个答案:

答案 0 :(得分:2)

使用jQuery进行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]

我修改了上面的示例来执行此操作。

答案 1 :(得分: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);