modern handling of http request
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				soko-web/pipeline/head There was a failure building this commit
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	soko-web/pipeline/head There was a failure building this commit
				
			This commit is contained in:
		
							parent
							
								
									d78a82c14c
								
							
						
					
					
						commit
						4b089b4e84
					
				@ -7,13 +7,15 @@ class Request implements IRequest
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    private string $url;
 | 
					    private string $url;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private int $method;
 | 
					    private ?string $method = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private string $query = '';
 | 
					    private string $query = '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private ?string $body = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private array $headers = [];
 | 
					    private array $headers = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function __construct(string $url = '', int $method = self::HTTP_GET)
 | 
					    public function __construct(string $url = '', ?string $method = null)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $this->url = $url;
 | 
					        $this->url = $url;
 | 
				
			||||||
        $this->method = $method;
 | 
					        $this->method = $method;
 | 
				
			||||||
@ -24,7 +26,7 @@ class Request implements IRequest
 | 
				
			|||||||
        $this->url = $url;
 | 
					        $this->url = $url;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function setMethod(int $method): void
 | 
					    public function setMethod(string $method): void
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $this->method = $method;
 | 
					        $this->method = $method;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -38,6 +40,11 @@ class Request implements IRequest
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function setBody(string $body): void
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->body = $body;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function setHeaders(array $headers): void
 | 
					    public function setHeaders(array $headers): void
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $this->headers = array_merge($this->headers, $headers);
 | 
					        $this->headers = array_merge($this->headers, $headers);
 | 
				
			||||||
@ -47,13 +54,20 @@ class Request implements IRequest
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        $ch = curl_init();
 | 
					        $ch = curl_init();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ($this->method === self::HTTP_POST) {
 | 
					        $url = $this->url . '?' . $this->query;
 | 
				
			||||||
            $url = $this->url;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            curl_setopt($ch, CURLOPT_POST, 1);
 | 
					        if ($this->body !== null) {
 | 
				
			||||||
            curl_setopt($ch, CURLOPT_POSTFIELDS, $this->query);
 | 
					            if ($this->method === null) {
 | 
				
			||||||
        } else {
 | 
					                $this->method = self::HTTP_POST;
 | 
				
			||||||
            $url = $this->url . '?' . $this->query;
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if ($this->method === self::HTTP_POST) {
 | 
				
			||||||
 | 
					                curl_setopt($ch, CURLOPT_POST, 1);
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $this->method);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            curl_setopt($ch, CURLOPT_POSTFIELDS, $this->body);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        curl_setopt($ch, CURLOPT_URL, $url);
 | 
					        curl_setopt($ch, CURLOPT_URL, $url);
 | 
				
			||||||
 | 
				
			|||||||
@ -2,16 +2,24 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
interface IRequest
 | 
					interface IRequest
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    const HTTP_GET = 0;
 | 
					    const HTTP_GET = 'GET';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const HTTP_POST = 1;
 | 
					    const HTTP_POST = 'POST';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const HTTP_PUT = 'PUT';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const HTTP_PATCH = 'PATCH';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const HTTP_DELETE = 'DELETE';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function setUrl(string $url): void;
 | 
					    public function setUrl(string $url): void;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function setMethod(int $method): void;
 | 
					    public function setMethod(string $method): void;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function setQuery($query): void;
 | 
					    public function setQuery($query): void;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function setBody(string $body): void;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function setHeaders(array $headers): void;
 | 
					    public function setHeaders(array $headers): void;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function send(): IResponse;
 | 
					    public function send(): IResponse;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user