Overview

Namespaces

  • SMSApi
    • Api
      • Action
        • Phonebook
        • Sender
        • Sms
        • User
      • Response
    • Exception
    • Proxy
      • Http

Classes

  • SMSApi\Proxy\Http\AbstractHttp
  • SMSApi\Proxy\Http\Curl
  • SMSApi\Proxy\Http\Native
  • Overview
  • Namespace
  • Class
 1: <?php
 2: 
 3: namespace SMSApi\Proxy\Http;
 4: 
 5: use SMSApi\Exception\ProxyException;
 6: use SMSApi\Proxy\Proxy;
 7: 
 8: class Curl extends AbstractHttp implements Proxy
 9: {
10:     protected function makeRequest($url, $query, $file)
11:     {
12:         $body = $this->prepareRequestBody($file);
13: 
14:         $headers = $this->prepareRequestHeaders($file);
15: 
16:         $curl = curl_init();
17: 
18:         curl_setopt( $curl, CURL_HTTP_VERSION_1_1, true );
19: 
20:         curl_setopt( $curl, CURLOPT_HEADER, false );
21: 
22:         curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
23: 
24:         if ( $this->getPort() != 80 ) {
25:             curl_setopt( $curl, CURLOPT_PORT, intval( $this->getPort() ) );
26:         }
27: 
28:         if ( isset( $this->timeout ) ) {
29:             curl_setopt( $curl, CURLOPT_CONNECTTIMEOUT, $this->timeout );
30:         }
31: 
32:         if ( isset( $this->maxRedirects ) ) {
33:             curl_setopt( $curl, CURLOPT_MAXREDIRS, $this->maxRedirects );
34:         }
35: 
36:         if ( !$curl ) {
37:             throw new ProxyException( 'Unable to connect' );
38:         }
39: 
40:         if ( $this->method == "POST" ) {
41: 
42:             $body = $this->renderQueryByBody($query, $body);
43: 
44:             curl_setopt( $curl, CURLOPT_URL, $url );
45: 
46:             curl_setopt( $curl, CURLOPT_POST, true );
47: 
48:             curl_setopt( $curl, CURLOPT_POSTFIELDS, $body );
49:         } else {
50:             curl_setopt( $curl, CURLOPT_URL, $url . '?' . $query);
51:         }
52: 
53:         $curlHeaders = array( );
54:         foreach ( $headers as $key => $value ) {
55:             $curlHeaders[ ] = $key . ': ' . $value;
56:         }
57: 
58:         curl_setopt( $curl, CURLOPT_HTTPHEADER, $curlHeaders );
59: 
60:         curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
61: 
62:         $response = array(
63:             'output' => curl_exec( $curl ),
64:             'code' => curl_getinfo( $curl, CURLINFO_HTTP_CODE )
65:         );
66: 
67:         curl_close( $curl );
68: 
69:         return $response;
70:     }
71: }
72: 
SMSAPI Api Client API documentation generated by ApiGen