2016-09-27 131 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