12

我已经搜索了几个小时,但找不到任何关于此的内容。我正在向 Sugarsync api 发出 php curl post 请求,它在我需要的标头中返回一个位置。我不知道如何获得这些信息。我必须将其保留为帖子,因为我将 xml 文件发布到他们的 api 并且他们所做的只是返回标头信息。我不知道如何访问标题中的位置。根据他们的说法,我需要将其放入另一个 xml 文件并发布。任何帮助表示赞赏。

4

2 回答 2

16

如果您设置 curl 选项CURLOPT_FOLLOWLOCATION,cURL 将为您遵循位置重定向。

如果您想获取标头,请将选项设置CURLOPT_HEADER为 1,您返回的 HTTP 响应curl_exec()将包含标头。您可以让他们解析它们的位置。

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 1); // return HTTP headers with response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return the response rather than output it

$resp = curl_exec($ch);

list($headers, $response) = explode("\r\n\r\n", $resp, 2);
// $headers now has a string of the HTTP headers
// $response is the body of the HTTP response

$headers = explode("\n", $headers);
foreach($headers as $header) {
    if (stripos($header, 'Location:') !== false) {
        echo "The location header is: '$header'";
    }
}

查看curl_setopt()中的所有选项。

于 2012-07-25T22:17:12.510 回答
2

获取响应中的标头信息。

curlsetopt($ch,CURLOPT_HEADER,true);
于 2012-07-25T22:16:02.837 回答