在curl默认内容类型中,不会更改输出中的“application / json”。
$headers = array();
$headers[] = 'Accept: application/xml';
$headers[] = 'Content-Type: application/xml';
$url = url('someurl here');
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response=curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
输出:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Request-Time: 295
Date: Wed, 28 Jun 2017 07:41:58 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Connection: Transfer-Encoding
我在上面的代码中做错了吗?我只需要xml格式的输出。
答案 0 :(得分:0)
没有错。您设置的内容类型标头是请求标头。它定义了您要发送到服务器的内容类型。在GET请求类型中没有任何意义。
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
...
是响应标头。此处的内容类型显示服务器响应的格式。
也许你没有通过一些告诉服务器返回xml数据而不是json的参数。