note 108148 added to soapclient.dorequest
| From: | alirezadotmeskinatgmail | Date: | Mon, 02 Apr 2012 12:29:46 +0000 |
| Subject: | note 108148 added to soapclient.dorequest | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-186938@lists.php.net to get a copy of this message | ||
Change Blocking mode for Socket stream and set Timeout for Soap requests
<?php
class TimeoutSoapClient extends SoapClient
{
const TIMEOUT = 20;
public function __doRequest($request, $location, $action, $version, $one_way = 0)
{
$url_parts = parse_url($location);
$host = $url_parts['host'];
$http_req = 'POST '.$location.' HTTP/1.0'."\r\n";
$http_req .= 'Host: '.$host."\r\n";
$http_req .= 'SoapAction: '.$action."\r\n";
$http_req .= "\r\n";
$http_req .= $request;
$port = 80;
if ($url_parts['scheme'] == 'https')
{
$port = 443;
$host = 'ssl://'.$host;
}
$socket = fsockopen($host, $port);
fwrite($socket, $request);
stream_set_blocking($socket, false);
$response = '';
$stop = microtime(true) + self::TIMEOUT;
while (!feof($socket))
{
$response .= fread($socket, 2000);
if (microtime(true) > $stop)
{
throw new SoapFault('Client', 'HTTP timeout');
}
}
return $response;
}
}
----
Server IP: 69.147.83.197
Probable Submitter: 109.162.198.244
----
Manual Page -- http://www.php.net/manual/en/soapclient.dorequest.php
Edit -- https://master.php.net/note/edit/108148
Del: integrated -- https://master.php.net/note/delete/108148/integrated
Del: useless -- https://master.php.net/note/delete/108148/useless
Del: bad code -- https://master.php.net/note/delete/108148/bad+code
Del: spam -- https://master.php.net/note/delete/108148/spam
Del: non-english -- https://master.php.net/note/delete/108148/non-english
Del: in docs -- https://master.php.net/note/delete/108148/in+docs
Del: other reasons-- https://master.php.net/note/delete/108148
Reject -- https://master.php.net/note/reject/108148
Search -- https://master.php.net/manage/user-notes.php