首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CURLOPT_VERBOSE不工作

CURLOPT_VERBOSE不工作
EN

Stack Overflow用户
提问于 2018-04-04 19:13:34
回答 1查看 9K关注 0票数 8
代码语言:javascript
复制
Windows 7 x64
PHP 7.2.2 x64

我试图查看一个简单的请求有效负载,因此我为每个07.htm创建了一个PHP

代码语言:javascript
复制
<?php
$c = curl_init('https://www.google.com');
curl_setopt($c, CURLOPT_VERBOSE, 1);
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, 'monkey=uncle&rhino=aunt');
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$page = curl_exec($c);
curl_close($c);

但是,我绝对没有输出,不像示例显示的那样:

代码语言:javascript
复制
* Connected to www.example.com (10.1.1.1)
> POST /submit.php HTTP/1.1
Host: www.example.com
Pragma: no-cache
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Content-Length: 23
Content-Type: application/x-www-form-urlencoded

monkey=uncle&rhino=aunt* Connection #0 left intact
* Closing connection #0

$page包含一个Google404页面,所以我知道请求是成功的。

有没有人知道我是否需要处理其他设置,或者我做了什么明显错误的事情?特别是,我对有效载荷的主体感兴趣。

是的,我知道使用Google不是特别有用;我试图让这个简单的示例工作,这样我就可以调试一个神秘失败的API交互。

更新,每条评论请求

我不能做curl -v,但是print_r( curl_version() );会产生:

代码语言:javascript
复制
Array
(
    [version_number] => 473344
    [age] => 4
    [features] => 2428829
    [ssl_version_number] => 0
    [version] => 7.57.0
    [host] => x86_64-pc-win32
    [ssl_version] => OpenSSL/1.1.0g
    [libz_version] => 1.2.11
    [protocols] => Array
        (
            [0] => dict
            [1] => file
            [2] => ftp
            [3] => ftps
            [4] => gopher
            [5] => http
            [6] => https
            [7] => imap
            [8] => imaps
            [9] => ldap
            [10] => pop3
            [11] => pop3s
            [12] => rtsp
            [13] => scp
            [14] => sftp
            [15] => smb
            [16] => smbs
            [17] => smtp
            [18] => smtps
            [19] => telnet
            [20] => tftp
        )

)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-05 11:37:11

tl;博士

CURLOPT_STDERR 必须将设置为特定的内容。

设置curl_setopt($c, CURLOPT_STDERR, fopen('/curl.txt', 'w+'));解决了我的问题。

事实证明,由于某些原因,curl_setopt($c, CURLOPT_VERBOSE, 1);没有将输出输出打印到STDERR,这一点我还没有发现。我没有在PHP、Apache或事件查看器日志中找到输出。

在设置curl_setopt($c, CURLOPT_STDERR, fopen('/curl.txt', 'w+'));之后,我能够在curl.txt文件中看到输出。

我不确定这是否特定于Windows环境。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49658719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档