卷曲不打印结果

Posted

技术标签:

【中文标题】卷曲不打印结果【英文标题】:curl not printing result 【发布时间】:2019-09-19 14:01:51 【问题描述】:

我已经手动运行邮递员的网址,我已经成功连接并打印了结果。

但是当我尝试从方法调用它时,没有打印结果。

这是我使用的 curl 代码:

public function curlHandle($apiPath, $postArray)

    $CI = & get_instance();
    $conf = $CI->config->config;
    $curlHandle = curl_init($apiPath);
    curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curlHandle, CURLOPT_USERAGENT,"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/29.0.1547.57 Safari/537.36");
    curl_setopt($curlHandle, CURLOPT_TIMEOUT , 300);
    curl_setopt($curlHandle, CURLOPT_POST, 1);
    curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $postArray);
    curl_setopt($curlHandle, CURLOPT_VERBOSE, 1);
    $fp = fopen('/var/www/html/logs/curl_log.txt', 'w');
    curl_setopt($curlHandle, CURLOPT_STDERR, $fp);
    $result = curl_exec($curlHandle);
    print_r(curl_error($curlHandle));
    if ($result === FALSE) 
        die(curl_error($curlHandle));
     else 
         $data = json_decode($result, TRUE);
    
    curl_close($curlHandle);
    return $data;


这是 curl_log.txt 的内容

在 DNS 缓存中找到主机名 localhost/codeignitertest 正在尝试 127.0.0.1... TCP_NODELAY 设置 连接到 localhost/codeignitertest (127.0.0.1) 端口 80 (#0)

POST /test/process HTTP/1.1 主机:localhost/codeignitertest 用户代理:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36 接受:/ 内容长度:142 内容类型: 多部分/表单数据;边界=------------78a116d61ad4939d

还要注意 curlHandle() 来自另一个项目和 localhost/codeignitertest 但两者都在我的 localhost 中运行

【问题讨论】:

您已发出 CURLOPT_RETURNTRANSFER 选项,随后返回结果。此代码不应打印任何内容。 完美!它有效,您可以发布您的答案以便我投票吗? :) 【参考方案1】:

您已发布此选项:

curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);

这意味着 curl 从远程服务器返回输出而不是打印它。

然后您将该输出捕获到一个变量中:

$result = curl_exec($curlHandle);

然后将其编码并返回给调用者:

return $data;

此代码不应打印结果。它返回结果。

【讨论】:

以上是关于卷曲不打印结果的主要内容,如果未能解决你的问题,请参考以下文章

结果不打印 Python - SQlplus

为啥打印结果与实物不符

排序向量不断修改数据并打印不正确的结果

jQuery EasyUI是不是有自己的查询结果的报表打印功能

如何在 DataGrip 中打印查询结果?

pycharm 使用print不打印结果问题解决