显然,我没有在我的搜索中使用正确的关键字,或者我不理解其他人在博客或论坛中写过的内容,等等。
查找有关在两台服务器之间传递数据的信息。数据最好包含在JSON数组中。 如果你知道有人撰写了一篇完全包含这篇文章的博客,我真的很想有机会阅读它。否则你能提出一些想法吗?
更详细: 当用户访问页面时,将调用PHP函数,并将一些数据“打包”在JSON数组中,然后将POST命令发送到另一个服务器。收到POST后的第二台服务器将进行一些处理,然后“打包”一些数据并将其以JSON数组返回。然后将向用户显示结果。
以下我收到HTTP 200响应。没有数据。
第1站
$data_string = json_encode(array('user_id'=>123));
$ch = curl_init('http://site2.dev/retrieve');
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);
$status = curl_getinfo($ch);
curl_close($ch);
$result = json_decode($result);
第2站:
public function retrieve() {
return json_encode(array('some'=>'456'));
}
选择了Json数组,因为它可以加密,是的,HTTPS将在最终环境中使用。
两台服务器都将Laravel 4作为PHP Framework。
感谢您的想法和意见。
答案 0 :(得分:0)
添加:
curl_setopt($ch, CURLOPT_HEADER, 0);
并在内容长度上加上引号:
curl_setopt($ch, CURLOPT_HTTPHEADER,
array('Content-Type: application/json','"Content-Length: ' . strlen($data_string) . '"'));