Пример #1
0
 /**
  * Set up an HTTPClient with auth for our resource.
  *
  * @param string $method
  * @return HTTPClient
  */
 private function httpClient($method = 'GET')
 {
     $client = new HTTPClient($this->url);
     $client->setMethod($method);
     $client->setAuth($this->user, $this->pass);
     return $client;
 }
Пример #2
0
 /**
  * Make a HTTP request.
  *
  * @param string $url    Where to make the
  * @param array  $params post parameters
  *
  * @return mixed the request
  */
 function httpRequest($url, $params = null)
 {
     $request = new HTTPClient($url);
     $request->setConfig(array('connect_timeout' => 120, 'timeout' => 120, 'follow_redirects' => true, 'ssl_verify_peer' => false, 'ssl_verify_host' => false));
     // Twitter is strict about accepting invalid "Expect" headers
     $request->setHeader('Expect', '');
     if (isset($params)) {
         $request->setMethod(HTTP_Request2::METHOD_POST);
         $request->setBody($params);
     }
     try {
         $response = $request->send();
         $code = $response->getStatus();
         if ($code < 200 || $code >= 400) {
             throw new OAuthClientException($response->getBody(), $code);
         }
         return $response->getBody();
     } catch (Exception $e) {
         throw new OAuthClientException($e->getMessage(), $e->getCode());
     }
 }
Пример #3
0
 function postToCollection($url, $activity)
 {
     $client = new HTTPClient($url);
     $client->setMethod('POST');
     $client->setAuth($this->username, $this->password);
     $client->setHeader('Content-Type', 'application/atom+xml;type=entry');
     $client->setBody($activity->asString(true, true, true));
     $response = $client->send();
     $status = $response->getStatus();
     $reason = $response->getReasonPhrase();
     if ($status >= 200 && $status < 300) {
         return true;
     } else {
         if ($status >= 400 && $status < 500) {
             // TRANS: Client exception thrown when post to collection fails with a 400 status.
             // TRANS: %1$s is a URL, %2$s is the status, %s$s is the fail reason.
             throw new ClientException(sprintf(_m('URLSTATUSREASON', '%1$s %2$s %3$s'), $url, $status, $reason));
         } else {
             if ($status >= 500 && $status < 600) {
                 // TRANS: Server exception thrown when post to collection fails with a 500 status.
                 // TRANS: %1$s is a URL, %2$s is the status, %s$s is the fail reason.
                 throw new ServerException(sprintf(_m('URLSTATUSREASON', '%1$s %2$s %3$s'), $url, $status, $reason));
             } else {
                 // That's unexpected.
                 // TRANS: Exception thrown when post to collection fails with a status that is not handled.
                 // TRANS: %1$s is a URL, %2$s is the status, %s$s is the fail reason.
                 throw new Exception(sprintf(_m('URLSTATUSREASON', '%1$s %2$s %3$s'), $url, $status, $reason));
             }
         }
     }
 }
Пример #4
0
 function postJSON($url, $body)
 {
     $request = OAuthRequest::from_consumer_and_token($this->consumer, $this->token, 'POST', $url);
     $request->sign_request($this->sha1_method, $this->consumer, $this->token);
     $hclient = new HTTPClient($url);
     $hclient->setConfig(array('connect_timeout' => 120, 'timeout' => 120, 'follow_redirects' => true, 'ssl_verify_peer' => false, 'ssl_verify_host' => false));
     $hclient->setMethod(HTTP_Request2::METHOD_POST);
     $hclient->setBody(json_encode($body));
     $hclient->setHeader('Content-Type', 'application/json');
     $hclient->setHeader($request->to_header());
     // Twitter is strict about accepting invalid "Expect" headers
     // No reason not to clear it still here -ESP
     $hclient->setHeader('Expect', '');
     try {
         $response = $hclient->send();
         $code = $response->getStatus();
         if (!$response->isOK()) {
             throw new OAuthClientException($response->getBody(), $code);
         }
         return $response;
     } catch (Exception $e) {
         throw new OAuthClientException($e->getMessage(), $e->getCode());
     }
 }