2012-06-04 47 views
0

我在尝试登录渠道顾问,但输出的错误为:HTTP/1.1 302 Moved Temporarily登录到渠道顾问

但上周它运行完美,我登录和检索我的数据,现在我再次运行它有一个错误。

这里是我的代码:

$pages = array('home' => 
'https://login.channeladvisor.com/?gotourl=https%3a%2f%2fcomplete.channeladvisor.com%2f', 
      'login' => 
'https://login.channeladvisor.com/?gotourl=https%3a%2f%2fcomplete.channeladvisor.com%2f', 
      'data' => 
    'https://merchant.channeladvisor.com/AM/MyInventory/View_Inventory.aspx?apid=32001263'); 

    $ch = curl_init(); 
    //Set options for curl session 
    $options = array(CURLOPT_USERAGENT => 'Mozilla/12.0 (compatible; MSIE 6.0; Windows NT 5.1)', 
     CURLOPT_SSL_VERIFYPEER => FALSE, 
     CURLOPT_SSL_VERIFYHOST => 2, 
     CURLOPT_HEADER => TRUE, 
     CURLOPT_RETURNTRANSFER => TRUE, 
     CURLOPT_COOKIEFILE => 'cookies.txt', 
     CURLOPT_COOKIEJAR => 'cookies.txt'); 

//Hit home page for session cookie 
$options[CURLOPT_URL] = $pages['home']; 
curl_setopt_array($ch, $options); 
//curl_exec($ch); 

//Login 
$options[CURLOPT_URL] = $pages['login']; 
$options[CURLOPT_POST] = TRUE; 
$options[CURLOPT_POSTFIELDS] = '[email protected]&password=xxxxxxx'; 
$options[CURLOPT_FOLLOWLOCATION] = false; 
curl_setopt_array($ch, $options); 
curl_exec($ch); 

//Hit data page 
$options[CURLOPT_URL] = $pages['data']; 
curl_setopt_array($ch, $options); 
$data = curl_exec($ch); 

//Output data 
echo $data; 

//Close curl session 
curl_close($ch); 

回答

-1

我想你应该从频道顾问处理这类更新,因此,跟踪重定向。

因为我不认为这是使用curl登录Channel Advisor的常用方式,所以您将需要随时更新每个Channel Advisor更新中的代码。 它记得我只能使用curl检索Google Analytics数据:每次更新登录系统时,都必须重新编写自己的卷曲登录方法 - 无聊

你可以阅读this answer关于跟随一个Header: Location与卷曲。基本上是:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
$a = curl_exec($ch); 
if(preg_match('#Location: (.*)#', $a, $r)) 
$l = trim($r[1]);