Can';不能从PHP(localhost)连接到WufooAPI,但可以使用terminal curl OK进行连接

Can';不能从PHP(localhost)连接到WufooAPI,但可以使用terminal curl OK进行连接,php,curl,wufoo,Php,Curl,Wufoo,如果我在终端中运行这个(当然,使用我真正的api ID),它工作得很好 curl -u "MYAPIID":"footastic" "https://myaccountid.wufoo.com/api/v3/forms.json" 我尝试在本地服务器(localhost)上使用PHP获得相同的结果,方法如下: $curl = curl_init('https://myaccountid.wufoo.com/api/v3/forms.json'); curl_setopt($curl, CUR

如果我在终端中运行这个(当然,使用我真正的api ID),它工作得很好

curl -u "MYAPIID":"footastic" "https://myaccountid.wufoo.com/api/v3/forms.json"
我尝试在本地服务器(localhost)上使用PHP获得相同的结果,方法如下:

$curl = curl_init('https://myaccountid.wufoo.com/api/v3/forms.json');

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_USERAGENT, 'Wufoo Form Getter');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_USERPWD, 'MYAPIID:footastic');

$response = curl_exec($curl);
$resultStatus = curl_getinfo($curl);
if ($resultStatus['http_code'] == 200) {
    $result = json_decode($response, true);
} else {
    $result = 'Call Failed ' . print_r($resultStatus, true);
}

echo "<pre>";
print_r($result);
echo "</pre>";
为什么它在终端中工作良好,但在PHP中却不工作?你知道该怎么做吗?

删除
curl\u setopt($curl,CURLOPT\u HTTPAUTH,CURLAUTH\u Any)来自您的代码。根据文件:

如果使用
curl\u setopt($curl,CURLOPT\u VERBOSE,true)在您的代码中,您将看到它没有在头中发送基本身份验证。但是如果你像我提到的那样去掉那条线,你会看到它在工作

您还可以使用
-v
选项运行curl命令。它将向您显示调试打印。它将帮助您匹配命令行和代码的请求头。

删除
curl\u setopt($curl,CURLOPT\u HTTPAUTH,CURLAUTH\u ANY)来自您的代码。根据文件:

如果使用
curl\u setopt($curl,CURLOPT\u VERBOSE,true)在您的代码中,您将看到它没有在头中发送基本身份验证。但是如果你像我提到的那样去掉那条线,你会看到它在工作

您还可以使用
-v
选项运行curl命令。它将向您显示调试打印。它将帮助您匹配命令行和代码的请求头

Call Failed Array
(
    [url] => https://myaccountid.wufoo.com/api/v3/forms.json
    [content_type] => 
    [http_code] => 0
    [header_size] => 0
    [request_size] => 0
    [filetime] => -1
    [ssl_verify_result] => 1
    [redirect_count] => 0
    [total_time] => 0.216174
    [namelookup_time] => 4.1E-5
    [connect_time] => 0.215999
    [pretransfer_time] => 0
    [size_upload] => 0
    [size_download] => 0
    [speed_download] => 0
    [speed_upload] => 0
    [download_content_length] => -1
    [upload_content_length] => -1
    [starttransfer_time] => 0
    [redirect_time] => 0
    [redirect_url] => 
    [primary_ip] => 75.98.93.66
    [certinfo] => Array
        (
        )

    [primary_port] => 443
    [local_ip] => 192.168.0.9
    [local_port] => 54355
)
CURLAUTH_ANY

This is a convenience macro that sets all bits and thus makes libcurl pick any it finds suitable. libcurl will automatically select the one it finds most secure.