我需要通过PHP从webservice获取数据,webservice使用一些标头授权和标题应如下所示:
POST /web/oauth/token HTTP/1.1
Host: www.web.com:8080
Authorization: Basic TOKEN
Accept: application/json
Cache-Control: no-cache
Postman-Token: 6e8d4551-d984-1a57-589d-25d5816a79b6
Content-Type: application/x-www-form-urlencoded
grant_type=pass&user=admin&pass=admin
我通过POSTMAN扩展程序对Chrome进行了测试,效果非常好! 我怎么试着把这样的东西添加到header()我无处可去,总是只下载空白的文件:(
header('Host: www.web.cz:8080');
header('Authorization: Basic TOKEN');
header('Accept: application/json');
header('Cache-Control: no-cache');
header('Postman-Token: 6e8d4551-d984-1a57-589d-25d5816a79b6');
header('Content-Type: application/x-www-form-urlencoded');
header('grant_type=password&username=admin&password=admin');
为什么它没有得到任何回复,尽管标题应该看起来一样?
答案 0 :(得分:1)
要在请求中添加标题,您需要在请求中设置它们,header()函数会在您的响应中设置它们。
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Host: example.com',
'Accept: application/json'
));
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
$file = file_get_contents('http://www.example.com/', false, $context);
如果您使用其他方式发送请求,请查看文档。