卷曲不打印结果
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;
此代码不应打印结果。它返回结果。
【讨论】:
以上是关于卷曲不打印结果的主要内容,如果未能解决你的问题,请参考以下文章