如何使用php curl从icontact获取联系人?

时间:2011-10-27 12:36:41

标签: php curl

我正在尝试使用php脚本在iContact中获取我的帐户的联系人列表。我可以使用RestClient获取联系人列表,输入标题集,网址并按下go,这样我很确定我的标题和网址是正确的。 iContact提供了此任务的示例代码,但是当我运行它时(使用我的帐户和ap详细信息),我得到的响应与运行以下代码时的响应相同:

<?php

    $Headers = array(
                "Accept: text/xml",
                "Content-Type: text/xml",
                "API-Version: 2.2",
                "API-AppId: grBddgWuirhAYT41K6gvrvRGaUGJFVQL",
                "API-Username: <removed>",
                "API-Password: <removed>");

    $Url = "https://app.sandbox.icontact.com/icp/a/412608/c/123920/contacts";

    $Handle    = curl_init();
    if(!$Handle)
    {
        die("Could not create a cURL handle.");
    }

    curl_setopt($Handle, CURLOPT_URL, $Url);
    curl_setopt($Handle, CURLOPT_HTTPHEADER, $Headers);
    curl_setopt($Handle, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110303 Ubuntu/10.04 (lucid) Firefox/3.6.15");

    curl_setopt($Handle, CURLOPT_RETURNTRANSFER, true);
    $Response = curl_exec($Handle);

    $iCode = curl_getinfo($Handle);
    echo "Response: <br />";
    print_r($Response);
    echo "<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />";
    echo "Code: <br />";
    print_r($iCode);

    curl_close($Handle);
?>

这给出了输出:

Response:


Code:
Array ( [url] => https://app.sandbox.icontact.com/icp/a/412608/c/123920/contacts [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.094 [namelookup_time] => 0 [connect_time] => 0.094 [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 ) 

根据我对curl的理解(目前不是很多),http_code应该是200,而xml应该是$ Response。

有人能指出我做错了吗?

iContact示例可在此处获得: http://developer.icontact.com/documentation/code-library-zip-file/

我正在尝试做get_contacts.php应该做的事情。

1 个答案:

答案 0 :(得分:3)

问题不在于代码,这很好。 我无法运行它并从我的localhost获得响应,但必须使用公共服务器。