httpclient : set a default User-Agent and allow to set it to anything

httpclient : each header line is now set to 4065 chars max (1024 was too short in case of cookies or SAML authentication)


git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@4798 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
2018-12-22 20:58:14 +00:00
parent 449116b7c0
commit d8860ca0a9

View File

@@ -76,12 +76,16 @@ class Httpclient
* If value is like "@/tmp/file", use the /tmp/file as content * If value is like "@/tmp/file", use the /tmp/file as content
*/ */
private $formData = array (); private $formData = array ();
// }}}
/** The timeout in second before expiring the connection /** The timeout in second before expiring the connection
*/ */
private $timeout = 30; private $timeout = 30;
/** Store the user agent. If it is empty, it will not be sent to the server
*/
private $useragent = "HTTPClient";
// }}}
/** The constructor /** The constructor
*/ */
public function __construct () public function __construct ()
@@ -273,6 +277,20 @@ class Httpclient
} }
// }}} // }}}
/** Get / Set the useragent sent to the server. If it is empty, it will not be
* sent
* @param string|null $useragent The user agent to use
*/
public function useragent ($useragent)
// {{{
{
if ($useragent === null)
return $this->useragent;
$this->useragent = $useragent;
return $this;
}
// }}}
////////////////////////////////// //////////////////////////////////
//// THE ACTIVE METHODS //// //// THE ACTIVE METHODS ////
////////////////////////////////// //////////////////////////////////
@@ -403,6 +421,8 @@ class Httpclient
$this->headersSent[] = "$this->method $path HTTP/1.1"; $this->headersSent[] = "$this->method $path HTTP/1.1";
$this->headersSent[] = "Host: ".$parseURL["host"]; $this->headersSent[] = "Host: ".$parseURL["host"];
$this->headersSent[] = "Accept: text/html"; $this->headersSent[] = "Accept: text/html";
if ($this->useragent !== "")
$this->headersSent[] = "User-Agent: $this->useragent";
$this->headersSent[] = "Connection: keep-alive"; $this->headersSent[] = "Connection: keep-alive";
$cookies = $this->cookieToSend ($this->url); $cookies = $this->cookieToSend ($this->url);
if (! empty ($cookies)) if (! empty ($cookies))
@@ -483,7 +503,7 @@ class Httpclient
// Get the result header from the server // Get the result header from the server
// {{{ // {{{
$headers = array (); $headers = array ();
while (($header = $this->tcpclient->read ()) !== "") while (($header = $this->tcpclient->read (4095)) !== "")
{ {
@list ($key, $val) = explode (":", $header, 2); @list ($key, $val) = explode (":", $header, 2);
if ($val === null) if ($val === null)
@@ -606,7 +626,6 @@ class Httpclient
{ {
if ($this->debug < $priority) if ($this->debug < $priority)
return; return;
echo "LOG $this->debug < $priority\n";
if (is_array ($message)) if (is_array ($message))
print_r ($message); print_r ($message);
elseif (is_bool ($message)) elseif (is_bool ($message))