繁体   English   中英

如何通过PHP在两个服务器之间发送和接收JSON数据

[英]How to send and receive JSON data between two servers via php

显然,我在搜索中没有使用正确的关键字,或者不了解其他人在博客或论坛上写的内容,等等。

寻找有关在两个服务器之间传递数据的信息。 数据最好包含在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框架。

感谢您的想法和评论。

添加:

curl_setopt($ch, CURLOPT_HEADER, 0);

并在内容长度上加上引号:

curl_setopt($ch, CURLOPT_HTTPHEADER,
    array('Content-Type: application/json','"Content-Length: ' . strlen($data_string) . '"'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM