【问题标题】:cUrl keep on sending header information if set to false如果设置为 false,cUrl 继续发送标头信息
【发布时间】:2012-12-19 11:28:00
【问题描述】:

使用 cUrl,我想在使用 SimpleXmlElement 之后获取一个 xml 文件来读取它。但是因为 cUrl 继续在响应中发送标头信息,所以我的 XML 文档无效。

我要怎么做才能留下 HTTP 标头信息?

我返回的部分数据:

string(8056) "HTTP/1.1 200 OK\r\nServer: Apache-Coyote/1.1\r\nContent-Type: text/xml\r\nDate: Wed, 19 Dec 2012 11:15:45 GMT\r\n\r\n
    <?xml version="1.0"?>\n

我的代码(ZF2)

$request = new Request();
        $request->setUri($url);

        $adapter = new Curl();
        $client  = new Client();
        $client->setAdapter($adapter);

        $adapter->setOptions(array(
            'curloptions' => array(
                CURLOPT_HEADER => 0,
                CURLOPT_RETURNTRANSFER => 1,
                CURLOPT_CONNECTTIMEOUT => 4,
            )
        ));

        $response = $client->dispatch($request);

提前致谢!

尼克

【问题讨论】:

  • 你用的是什么库? new Curl() 不是普通的 PHP...
  • 我使用了 use Zend\Http\Request;使用 Zend\Http\Client;使用 Zend\Http\Client\Adapter\Curl;

标签: php curl header http-headers zend-framework2


【解决方案1】:

根据 PHP 手册,CURLOPT_HEADER 应该设置为 true 或 false。

要删除标头输出,只需添加以下代码:

CURLOPT_HEADER => false

我不知道你用的是什么 cURL 类,因为 PHP 中没有这样的类。

完整代码:

$request = new Request();
$request->setUri($url);

$adapter = new Curl();
$client  = new Client();
$client->setAdapter($adapter);

$adapter->setOptions(array(
    'curloptions' => array(
        CURLOPT_HEADER => false,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_CONNECTTIMEOUT => 4
    )
));

$response = $client->dispatch($request);

这对你有用吗?否则我会给你一个更新的答案。

【讨论】:

    【解决方案2】:

    需要使用'$response->getBody();' !这成功了。

    $request = 新请求(); $request->setUri($url);

        $adapter = new Curl();
        $client  = new Client();
        $client->setAdapter($adapter);
    
        $adapter->setOptions(array(
            'curloptions' => array(
                CURLOPT_RETURNTRANSFER => 1,
                CURLOPT_CONNECTTIMEOUT => 4,
            )
        ));
    
        $response = $client->send($request);
        $data = $response->getBody();
    
        return $data;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多