我有这些价值观:
$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响应?
答案 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);