MediaWiki  1.27.2
MWHttpRequest Class Reference

This wrapper class will call out to curl (if available) or fallback to regular PHP if necessary for handling internal HTTP requests. More...

Inheritance diagram for MWHttpRequest:
Collaboration diagram for MWHttpRequest:

Public Member Functions

 canFollowRedirects ()
 Returns true if the backend can follow redirects. More...
 
 execute ()
 Take care of whatever is necessary to perform the URI request. More...
 
 getContent ()
 Get the body, or content, of the response to the request. More...
 
 getCookieJar ()
 Returns the cookie jar in use. More...
 
 getFinalUrl ()
 Returns the final URL after all redirections. More...
 
 getHeaderList ()
 Get an array of the headers. More...
 
 getResponseHeader ($header)
 Returns the value of the given response header. More...
 
 getResponseHeaders ()
 Returns an associative array of response headers after the request has been executed. More...
 
 getStatus ()
 Get the integer value of the HTTP status code (e.g. More...
 
 isRedirect ()
 Returns true if the last status code was a redirect. More...
 
 proxySetup ()
 Take care of setting up the proxy (do nothing if "noProxy" is set) More...
 
 read ($fh, $content)
 A generic callback to read the body of the response from a remote server. More...
 
 setCallback ($callback)
 Set a read callback to accept data read from the HTTP request. More...
 
 setCookie ($name, $value=null, $attr=null)
 Sets a cookie. More...
 
 setCookieJar ($jar)
 Tells the MWHttpRequest object to use this pre-loaded CookieJar. More...
 
 setData ($args)
 Set the parameters of the request. More...
 
 setHeader ($name, $value)
 Set an arbitrary header. More...
 
 setUserAgent ($UA)
 Set the user agent. More...
 

Static Public Member Functions

static canMakeRequests ()
 Simple function to test if we can make any sort of requests at all, using cURL or fopen() More...
 
static factory ($url, $options=null, $caller=__METHOD__)
 Generate a new request object. More...
 

Public Attributes

 $status
 
const SUPPORTS_FILE_POSTS = false
 

Protected Member Functions

 __construct ($url, $options=[], $caller=__METHOD__, $profiler=null)
 
 parseCookies ()
 Parse the cookies in the response headers and store them in the cookie jar. More...
 
 parseHeader ()
 Parses the headers, including the HTTP status code and any Set-Cookie headers. More...
 
 setStatus ()
 Sets HTTPRequest status member to a fatal value with the error message if the returned integer value of the status code was not successful (< 300) or a redirect (>=300 and < 400). More...
 

Protected Attributes

 $caInfo = null
 
 $callback
 
 $content
 
CookieJar $cookieJar
 
 $followRedirects = false
 
 $headerList = []
 
 $headersOnly = null
 
 $maxRedirects = 5
 
 $method = "GET"
 
 $noProxy = false
 
 $parsedUrl
 
 $postData = null
 
string $profileName
 
Profiler $profiler
 
 $proxy = null
 
 $reqHeaders = []
 
 $respHeaders = []
 
 $respStatus = "200 Ok"
 
 $respVersion = "0.9"
 
 $sslVerifyCert = true
 
 $sslVerifyHost = true
 
 $timeout = 'default'
 
 $url
 

Detailed Description

This wrapper class will call out to curl (if available) or fallback to regular PHP if necessary for handling internal HTTP requests.

Renamed from HttpRequest to MWHttpRequest to avoid conflict with PHP's HTTP extension.

Definition at line 219 of file HttpFunctions.php.

Constructor & Destructor Documentation

MWHttpRequest::__construct (   $url,
  $options = [],
  $caller = __METHOD__,
  $profiler = null 
)
protected
Parameters
string$urlUrl to use. If protocol-relative, will be expanded to an http:// URL
array$options(optional) extra params to pass (see Http::request())
string$callerThe method making this request, for profiling
Profiler$profilerAn instance of the profiler for profiling, or null

Definition at line 267 of file HttpFunctions.php.

References $options, $profiler, $url, as, global, Http\isValidURI(), Status\newFatal(), Status\newGood(), PROTO_HTTP, setUserAgent(), wfExpandUrl(), and wfParseUrl().

Member Function Documentation

MWHttpRequest::canFollowRedirects ( )

Returns true if the backend can follow redirects.

Overridden by the child classes.

Returns
bool

Definition at line 734 of file HttpFunctions.php.

static MWHttpRequest::canMakeRequests ( )
static

Simple function to test if we can make any sort of requests at all, using cURL or fopen()

Returns
bool

Definition at line 323 of file HttpFunctions.php.

References wfIniGetBool().

Referenced by Installer\subscribeToMediaWikiAnnounce().

MWHttpRequest::execute ( )

Take care of whatever is necessary to perform the URI request.

Returns
Status

Definition at line 483 of file HttpFunctions.php.

References content, proxySetup(), setCallback(), setUserAgent(), and Http\userAgent().

static MWHttpRequest::factory (   $url,
  $options = null,
  $caller = __METHOD__ 
)
static

Generate a new request object.

Parameters
string$urlUrl to use
array$options(optional) extra params to pass (see Http::request())
string$callerThe method making this request, for profiling
Exceptions
MWException
Returns
CurlHttpRequest|PhpHttpRequest
See also
MWHttpRequest::__construct

Definition at line 336 of file HttpFunctions.php.

References Http\$httpEngine, $options, $url, Profiler\instance(), and wfIniGetBool().

Referenced by Parser\fetchScaryTemplateMaybeFromCache(), ThumbnailRenderJob\hitThumbUrl(), ForeignAPIRepo\httpGet(), SpecialUploadStash\outputRemoteScaledThumb(), UploadFromUrl\reallyFetchFile(), Http\request(), Installer\subscribeToMediaWikiAnnounce(), ApiLoginTest\testApiLoginGotCookie(), and MediaWiki\Tidy\Html5Depurate\tidy().

MWHttpRequest::getContent ( )

Get the body, or content, of the response to the request.

Returns
string

Definition at line 366 of file HttpFunctions.php.

References $content.

MWHttpRequest::getCookieJar ( )

Returns the cookie jar in use.

Returns
CookieJar

Definition at line 631 of file HttpFunctions.php.

References $cookieJar, and parseHeader().

MWHttpRequest::getFinalUrl ( )

Returns the final URL after all redirections.

Relative values of the "Location" header are incorrect as stated in RFC, however they do happen and modern browsers support them. This function loops backwards through all locations in order to build the proper absolute URI - Marooned at wikia-inc.com

Note that the multiple Location: headers are an artifact of CURL – they shouldn't actually get returned this way. Rewrite this when bug 29232 is taken care of (high-level redirect handling rewrite).

Returns
string

Definition at line 690 of file HttpFunctions.php.

References $url, and getResponseHeaders().

Referenced by parseCookies().

MWHttpRequest::getHeaderList ( )

Get an array of the headers.

Returns
array

Definition at line 422 of file HttpFunctions.php.

References $name, $value, and as.

Referenced by CurlHttpRequest\execute(), and PhpHttpRequest\execute().

MWHttpRequest::getResponseHeader (   $header)

Returns the value of the given response header.

Parameters
string$header
Returns
string

Definition at line 604 of file HttpFunctions.php.

References parseHeader().

Referenced by PhpHttpRequest\execute().

MWHttpRequest::getResponseHeaders ( )

Returns an associative array of response headers after the request has been executed.

Because some headers (e.g. Set-Cookie) can appear more than once the, each value of the associative array is an array of the values given.

Returns
array

Definition at line 590 of file HttpFunctions.php.

References $respHeaders, and parseHeader().

Referenced by getFinalUrl().

MWHttpRequest::getStatus ( )

Get the integer value of the HTTP status code (e.g.

200 for "200 Ok") (see RFC2616, section 10, http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html for a list of status codes.)

Returns
int

Definition at line 555 of file HttpFunctions.php.

References $respStatus, and parseHeader().

MWHttpRequest::isRedirect ( )

Returns true if the last status code was a redirect.

Returns
bool

Definition at line 568 of file HttpFunctions.php.

References $status, and parseHeader().

Referenced by PhpHttpRequest\execute().

MWHttpRequest::parseCookies ( )
protected

Parse the cookies in the response headers and store them in the cookie jar.

Definition at line 659 of file HttpFunctions.php.

References $url, as, and getFinalUrl().

Referenced by parseHeader().

MWHttpRequest::parseHeader ( )
protected

Parses the headers, including the HTTP status code and any Set-Cookie headers.

This function expects the headers to be found in an array in the member variable headerList.

Definition at line 508 of file HttpFunctions.php.

References $last, as, and parseCookies().

Referenced by CurlHttpRequest\execute(), PhpHttpRequest\execute(), getCookieJar(), getResponseHeader(), getResponseHeaders(), getStatus(), isRedirect(), and setStatus().

MWHttpRequest::proxySetup ( )

Take care of setting up the proxy (do nothing if "noProxy" is set)

Returns
void

Definition at line 385 of file HttpFunctions.php.

References Http\getProxy(), and Http\isLocalURL().

Referenced by execute().

MWHttpRequest::read (   $fh,
  $content 
)

A generic callback to read the body of the response from a remote server.

Parameters
resource$fh
string$content
Returns
int

Definition at line 473 of file HttpFunctions.php.

References $content, and content.

MWHttpRequest::setCallback (   $callback)

Set a read callback to accept data read from the HTTP request.

By default, data is appended to an internal buffer which can be retrieved through $req->getContent().

To handle data as it comes in – especially for large files that would not fit in memory – you can instead set your own callback, in the form function($resource, $buffer) where the first parameter is the low-level resource being read (implementation specific), and the second parameter is the data buffer.

You MUST return the number of bytes handled in the buffer; if fewer bytes are reported handled than were passed to you, the HTTP fetch will be aborted.

Parameters
callable$callback
Exceptions
MWException

Definition at line 458 of file HttpFunctions.php.

References $callback.

Referenced by execute().

MWHttpRequest::setCookie (   $name,
  $value = null,
  $attr = null 
)

Sets a cookie.

Used before a request to set up any individual cookies. Used internally after a request to parse the Set-Cookie headers.

See also
Cookie::set
Parameters
string$name
mixed$value
array$attr

Definition at line 648 of file HttpFunctions.php.

References $name, $value, and CookieJar\setCookie().

MWHttpRequest::setCookieJar (   $jar)

Tells the MWHttpRequest object to use this pre-loaded CookieJar.

Parameters
CookieJar$jar

Definition at line 622 of file HttpFunctions.php.

MWHttpRequest::setData (   $args)

Set the parameters of the request.

Parameters
array$args
Todo:
overload the args param

Definition at line 376 of file HttpFunctions.php.

References $args.

MWHttpRequest::setHeader (   $name,
  $value 
)

Set an arbitrary header.

Parameters
string$name
string$value

Definition at line 413 of file HttpFunctions.php.

References $name, and $value.

Referenced by setUserAgent().

MWHttpRequest::setStatus ( )
protected

Sets HTTPRequest status member to a fatal value with the error message if the returned integer value of the status code was not successful (< 300) or a redirect (>=300 and < 400).

(see RFC2616, section 10, http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html for a list of status codes.)

Definition at line 537 of file HttpFunctions.php.

References $code, list, and parseHeader().

Referenced by CurlHttpRequest\execute(), and PhpHttpRequest\execute().

MWHttpRequest::setUserAgent (   $UA)

Set the user agent.

Parameters
string$UA

Definition at line 404 of file HttpFunctions.php.

References setHeader().

Referenced by __construct(), and execute().

Member Data Documentation

MWHttpRequest::$caInfo = null
protected

Definition at line 230 of file HttpFunctions.php.

Referenced by CurlHttpRequest\execute(), and PhpHttpRequest\getCertOptions().

MWHttpRequest::$callback
protected

Definition at line 235 of file HttpFunctions.php.

Referenced by CurlHttpRequest\execute(), and setCallback().

MWHttpRequest::$content
protected

Definition at line 222 of file HttpFunctions.php.

Referenced by getContent(), read(), and CurlHttpRequest\readHeader().

CookieJar MWHttpRequest::$cookieJar
protected

Definition at line 242 of file HttpFunctions.php.

Referenced by getCookieJar().

MWHttpRequest::$followRedirects = false
protected

Definition at line 237 of file HttpFunctions.php.

MWHttpRequest::$headerList = []
protected

Definition at line 244 of file HttpFunctions.php.

MWHttpRequest::$headersOnly = null
protected

Definition at line 224 of file HttpFunctions.php.

MWHttpRequest::$maxRedirects = 5
protected

Definition at line 236 of file HttpFunctions.php.

Referenced by CurlHttpRequest\execute().

MWHttpRequest::$method = "GET"
protected

Definition at line 231 of file HttpFunctions.php.

Referenced by CurlHttpRequest\execute(), and PhpHttpRequest\execute().

MWHttpRequest::$noProxy = false
protected

Definition at line 227 of file HttpFunctions.php.

MWHttpRequest::$parsedUrl
protected

Definition at line 234 of file HttpFunctions.php.

Referenced by PhpHttpRequest\urlToTcp().

MWHttpRequest::$postData = null
protected

Definition at line 225 of file HttpFunctions.php.

Referenced by CurlHttpRequest\execute(), and PhpHttpRequest\execute().

string MWHttpRequest::$profileName
protected

Definition at line 259 of file HttpFunctions.php.

Profiler MWHttpRequest::$profiler
protected

Definition at line 254 of file HttpFunctions.php.

Referenced by __construct().

MWHttpRequest::$proxy = null
protected

Definition at line 226 of file HttpFunctions.php.

Referenced by CurlHttpRequest\execute().

MWHttpRequest::$reqHeaders = []
protected

Definition at line 232 of file HttpFunctions.php.

MWHttpRequest::$respHeaders = []
protected

Definition at line 247 of file HttpFunctions.php.

Referenced by getResponseHeaders().

MWHttpRequest::$respStatus = "200 Ok"
protected

Definition at line 246 of file HttpFunctions.php.

Referenced by getStatus().

MWHttpRequest::$respVersion = "0.9"
protected

Definition at line 245 of file HttpFunctions.php.

MWHttpRequest::$sslVerifyCert = true
protected

Definition at line 229 of file HttpFunctions.php.

Referenced by CurlHttpRequest\execute(), and PhpHttpRequest\execute().

MWHttpRequest::$sslVerifyHost = true
protected

Definition at line 228 of file HttpFunctions.php.

MWHttpRequest::$status

Definition at line 249 of file HttpFunctions.php.

Referenced by CurlHttpRequest\execute(), PhpHttpRequest\execute(), and isRedirect().

MWHttpRequest::$timeout = 'default'
protected

Definition at line 223 of file HttpFunctions.php.

Referenced by CurlHttpRequest\execute(), and PhpHttpRequest\execute().

const MWHttpRequest::SUPPORTS_FILE_POSTS = false

Definition at line 220 of file HttpFunctions.php.


The documentation for this class was generated from the following file: