2016-09-27 72 views
0

更新:我发现这个问题与我的托管设置有关。该代码由Media Temple在DV服务器上托管,但我在GS Media Temple服务器上放置了完全相同的代码,并且按预期工作。那么,对于两者之间可能会有什么不同的想法呢?为什么Wufoo PHP API不起作用?


想知道是否有人可以阐明为什么我不能让这个API调用工作。只是试图获取表单入口数据。如果我将URL粘贴到JSON到我的浏览器中,它会按照您的预期显示,但在此调用中,我无法获得任何服务器响应。

<?php 


$api_uri_1 = "https://eastbankads.wufoo.com/api/v3/forms/z1qh9i4b1qg5qa6/entries.json"; 

function wufoo_api($api_uri) { 
    $curl = curl_init($api_uri); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_USERPWD, 'MY-API-KEY:password'); 
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($curl, CURLOPT_USERAGENT, 'Wufoo Sample Code'); 
    $response = curl_exec($curl); 
    $resultStatus = curl_getinfo($curl); 

    if ($resultStatus['http_code'] == 200) { 
    $results = json_decode($response, true); 
    return $results; 
    } else { 
    $results = 'Call Failed '.print_r($resultStatus); 
    return $results; 
    } 
} 

$result1 = wufoo_api($api_uri_1); 

?> 

我检查了&将我的API密钥翻了一番。下面是我的测试页面,并输出一个链接,该链接从代码给出:

http://resources.worldoftile.net/wufoo-perfect-project-entries/

或者说,这是该网页上输出:

Array ( 
    [url] => https://eastbankads.wufoo.com/api/v3/forms/z1qh9i4b1qg5qa6/entries.json 
    [content_type] => 
    [http_code] => 0 
    [header_size] => 0 
    [request_size] => 132 
    [filetime] => -1 
    [ssl_verify_result] => 0 
    [redirect_count] => 0 
    [total_time] => 0.068676 
    [namelookup_time] => 2.2E-5 
    [connect_time] => 0.009197 
    [pretransfer_time] => 0 
    [size_upload] => 0 
    [size_download] => 0 
    [speed_download] => 0 
    [speed_upload] => 0 
    [download_content_length] => -1 
    [upload_content_length] => 0 
    [starttransfer_time] => 0 
    [redirect_time] => 0.068764 
    [certinfo] => Array () 
    [primary_ip] => 75.98.93.66 
    [redirect_url] => 
) 
+1

做了任何基本的调试,就像试图做一个简单的“telnet到端口80”类型的检查从服务器到该网址的服务器?作为一个真实世界的比喻:即使你的汽车100%完美无缺,并不意味着你可以神奇地驾驶前一天晚上冲出的桥。所以检查你是否被允许从你的服务器发出传出请求,或者如果这个URL是黑名单你的服务器等.. –

+0

@MarcB谢谢,我会检查。我没有检查另一个URL,https://www.yahoo.com,并得到了正常的http 200响应。我要联系主持人 - Media Temple - 看看他们是否有任何想法。 –

+0

@MarcB在搜寻了一下你提到的简单检查之后......恐怕我不知道该怎么做。我能够使用在线Ping测试来测试域名https://eastbankads.wufoo.com/,并且没有任何问题。 –

回答

-1

删除下面的行会解决这个问题问题。

curl_setopt($ curl,CURLOPT_HTTPAUTH,CURLAUTH_ANY);

+0

为什么它会解决这个问题? OP表示它与其特定的网络设置有关。这种变化对此有何影响? – rene

+0

也许是因为我有同样的问题,并为我工作。 – user997932