我试图从在nginx服务器上运行的php代码向另一个远程django服务器发送get请求。我希望使用序列化程序在REST API中获取数据。
首先,如果我在本地浏览器中打开此链接:
我会得到:
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[
{
"id": "000e3588-9544-4df6-a589-cc0166242b5b",
"docfile": "/media/documents/2017/06/30/DSC03623.JPG"
},
{
"id": "3dc6be9f-8659-41d8-8282-b64662032da6",
"docfile": "/media/documents/2017/06/30/DSC03611_9KWbftQ.JPG"
},
{
"id": "28eacb2d-0798-46e9-b63e-10ff704482ce",
"docfile": "/media/documents/2017/06/30/DSC03555.JPG"
}
]
这正是我在运行php代码时想要获得的信息。
这就是我正在处理的事情,评论的部分是先前失败的尝试:
<?php
echo "<h1>I am here</h1>";
$url = "http://192.168.2.0:8000/myapp";
/*$body = http_parse_message(http_get($url))->body;
$body = http_get($url);
echo $body;*/
/*$client = new Client($url);
$request = $client->newRequest('/documents/');
$response = $request->getResponse();
echo $response->getParsedResponse();*/
$r = new HttpRequest('http://192.168.2.0:8000/myapp/documents/', HttpRequest::METH_GET);
$r->send();
echo $r->getResponseCode();
if ($r->getResponseCode() == 200)
{
echo "<h2>we get 200 response</h2>";
}
?>
以上3次尝试中没有任何内容打印除第一个回声之外的任何内容
我在这里
答案 0 :(得分:0)
好的,最后这是适合我的代码:
<?php
$ch = curl_init('http://192.168.2.0:8000/myapp/documents/');
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
?>
它需要cUrl才能工作。 cUrl通常在php中启用。要仔细检查 将此代码作为脚本运行:
<?php
phpinfo();
?>
如果cUrl正在运行,请搜索结果。