我知道我可以使用cURL,但我正在服务器上,我不允许使用cURL。
所以我的问题是:我使用information_schema.columns
来获取返回状态var ds = loopback.createDataSource({
connector: require('loopback-component-storage'),
provider: 'filesystem',
root: 'server/files'
});
var storage = ds.createModel('storage');
app.model(storage);
的请求的响应正文。使用file_get_contents
我可以得到响应的标题,但由于某些原因,PHP没有显示RESPONSE BODY!
当它返回400
状态时,$http_response_header
会返回respose正文,但是如果状态为200
,则表示不会返回响应正文。我该如何检索?
答案 0 :(得分:1)
4xx
HTTP status codes表示“客户端错误”。
更具体地说,400
status code的含义是“错误请求”。这意味着HTTP请求格式错误,服务器(或处理它的服务器端脚本)不理解它。
file_get_contents()
的文档解释了:
该函数返回读取数据或失败时
FALSE
。
状态代码不同于200
是失败的。
有一种方法可以在错误中获取请求的正文而不是FALSE
。您所要做的就是创建stream context,将其配置为ignore the HTTP errors并将其作为第三个参数传递给file_get_contents()
$url = 'http://localhost/';
$options = array(
'http' => array(
'ignore_errors' => true,
),
);
$context = stream_context_create($options);
$data = file_get_contents($url, false, $context);
$data
现在包含响应的正文,但您必须解析$http_response_header[0]
以了解请求是否成功。
无论如何,状态代码400
表示发出请求的代码中的错误;你应该修复请求(可能你提交了一个正文)。