使用帖子字段调用时,Curl 在服务器上不起作用
Posted
技术标签:
【中文标题】使用帖子字段调用时,Curl 在服务器上不起作用【英文标题】:Curl is not working on server when calling with post fields 【发布时间】:2016-09-26 10:31:56 【问题描述】:我有一个使用 curl 调用 api 的 php 代码
$username = 'xxxx';
$password = 'xxxx';
$fields = array(
'field' => urlencode('field_value')
);
$fields_string = '';
foreach($fields as $key=>$value) $fields_string .= $key.'='.$value.'&';
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://example.com");
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
$output = curl_exec($ch);
curl_close($ch);
print_r($output);
它在我的本地主机上工作,但在我的服务器上不工作。
这是我本地主机的curl信息 localhost_curl
这是我的服务器的 curl 信息server_curl
如果我调用没有帖子字段的 url,Curl 工作正常,但如果我使用帖子字段调用它,则会出现未找到的错误
【问题讨论】:
【参考方案1】:当您确认 curl 正在您的服务器上运行时,可能会发生请求正在重定向(针对服务器的地理位置)并且您没有在 curl 中处理它。在你的卷曲上添加这个。
curl_setopt($ch,CURLOPT_FOLLOWLOCATION, true);
您可以启用调试模式并查看 curl 在做什么。这将帮助您更多地了解错误(如果有)。
curl_setopt($ch,CURLOPT_VERBOSE, true);
【讨论】:
【参考方案2】:curl_setopt( $ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM );
在 curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password); 之前使用它
并使用 curl_error ( $ch ) 函数查看 curl 错误。
【讨论】:
以上是关于使用帖子字段调用时,Curl 在服务器上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Wordpress Postname 永久链接在 localhost (xampp) 上不起作用