2013-12-15 47 views
0

我正在研究一个wordpress插件,它通过phpFlickr类的一个克隆来调用flickr API。下面的代码 被定制为使用wordpress http wrapper函数来调用flickr。我打印了我传入的http POST 参数,但在每种情况下,Flickr服务都表示'方法不受支持'。 任何人都可以发现可能导致此问题的任何问题吗?通过Wordpress HTTP调用Flickr API

function request ($command, $args = array(), $nocache = false) { 
      if (substr($command,0,7) != "flickr.") { 
        $command = "flickr." . $command; 
      } 

      //Process arguments, including method and login data. 
      $args = array_merge(array("method" => $command, "format" => "php_serial", "api_key" => $this->api_key), $args); 
      if (!empty($this->token)) { 
        $args = array_merge($args, array("auth_token" => $this->token)); 
      } elseif (!empty($_SESSION['phpFlickr_auth_token'])) { 
        $args = array_merge($args, array("auth_token" => $_SESSION['phpFlickr_auth_token'])); 
      } 
      ksort($args); 
      $auth_sig = ""; 

      // http request arguments 
      $body = array(); 
      $headers = array(); 

      if (!($this->response = $this->getCached($args)) || $nocache) { 
        foreach ($args as $key => $data) { 
          $auth_sig .= $key . $data; 
          $body = array_merge(array($key => $data),$body); 
        } 
        if (!empty($this->secret)) { 
          $api_sig = md5($this->secret . $auth_sig); 
          $body = array_merge(array("api_sig" => $api_sig),$body); 
        } 
        $args = array_merge($args, $body); 

        // set any headers 
        $headers = array_merge(array('Connection' => 'Keep-Alive'),$headers); 
        $args = array_merge($args, $headers); 

        error_log('http args '.print_r($args,true)); 

        //Sends a request to Flickr's REST endpoint via POST. 
        //$this->response = $this->wpRequest->request($this->REST,$args); 
        $this->response = wp_remote_post($this->REST,$args); 

的HTTP POST参数

[15-Dec-2013 16:40:36 UTC] http args Array 
    (
    [api_key] => .........4e8ca6671ab35280c....... 
    [format] => php_serial 
    [method] => flickr.people.getPublicPhotos 
    [page] => 10 
    [per_page] => 14 
    [user_id] => [email protected] 
    [api_sig] => 4de7adfc3aa7bc10167fee1741da5e84 
    [Connection] => Keep-Alive 
    ) 

的反应是这个

[15-Dec-2013 16:40:36 UTC] Array 
    (
     [headers] => Array 
      (
       [date] => Sun, 15 Dec 2013 16:40:36 GMT 
       [p3p] => policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV" 
       [content-length] => 128 
       [cache-control] => private 
       [x-served-by] => www44.flickr.bf1.yahoo.com 
       [vary] => Accept-Encoding 
       [content-type] => text/xml; charset=utf-8 
       [age] => 0 
       [server] => ATS/4.0.2 
       [via] => http/1.1 r02.ycpi.ams.yahoo.net (ApacheTrafficServer/4.0.2 [c sSf ]) 
      ) 

     [body] => <xml version="1.0" encoding="utf-8" ?> 
    <rsp stat="fail"> 
      <err code="112" msg="Method &quot;unknown&quot; not found" /> 
    </rsp> 

     [response] => Array 
      (
       [code] => 200 
       [message] => OK 
      ) 

     [cookies] => Array 
      (
      ) 

     [filename] => 

回答