Commit Graph

77 Commits

Author SHA1 Message Date
Ryan McCue
8d0c62ad50 HTTP API: Add browser compatibility hook for 3xx redirects.
WordPress erroneously follows browser-style behaviour with 3xx redirects, where a POST to 302 becomes a GET. Requests instead follows the specification and keeps the same method. Requests also exposes a hook to allow changing the behaviour.

[37428] used the wrong method of adding this hook, now corrected.

See #33055.


git-svn-id: https://develop.svn.wordpress.org/trunk@37429 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-13 05:10:52 +00:00
Ryan McCue
9074e9f93b HTTP API: Replace internals with Requests library.
Requests is a library very similar to WP_HTTP, with a high level of unit test coverage, and has a common lineage and development team. It also supports parallel requests.

See #33055.


git-svn-id: https://develop.svn.wordpress.org/trunk@37428 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-13 04:41:45 +00:00
Drew Jaynes
c7bed4f8c6 Docs: Remove inline @see tags from function, class, and method references in inline docs.
Known functions, classes, and methods are now auto-linked in Code Reference pages following #meta1483.

Note: Hook references are still linked via inline `@see` tags due to the unlikelihood of reliably matching for known hooks based on a RegEx pattern.

See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@37342 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-02 03:59:56 +00:00
John Blackbourn
717c1c4041 HTTP API: Add the missing 1xx HTTP response codes as constants of the WP_Http class, and add tests to ensure all available response codes are covered.
Fixes #36294


git-svn-id: https://develop.svn.wordpress.org/trunk@36749 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-28 01:45:24 +00:00
ericlewis
3fde994152 Networks and sites: Replace "blog" usage with "site" in docs.
Multisite functions use the term "blog" to refer to what we now call a "site," e.g. `get_current_blog_id()`. These functions are here to stay because of our commitment to backwards compatibility. What we can do is set the documentation straight.

See #35417.


git-svn-id: https://develop.svn.wordpress.org/trunk@36416 602fd350-edb4-49c9-b593-d223f7449a82
2016-01-28 03:34:02 +00:00
Drew Jaynes
832197c6e6 Docs: Update the @access tag value for WP_Http::_get_first_available_transport() from private to public.
When the method was introduced in [17914], the name was underscore-prefixed as is core style for private-use, though it was also introduced with a `public` access modifier for the declaration. Due to core's committment to backward-compatibility, the access modifier overrules in this case, meaning that while the method is underscore-prefixed and was originally-intentioned to be private, it is and always will be a public method, and the documentation should reflect that.

Props Frozzare.
Fixes #35289.


git-svn-id: https://develop.svn.wordpress.org/trunk@36367 602fd350-edb4-49c9-b593-d223f7449a82
2016-01-20 18:45:04 +00:00
Joe Hoyle
a22e4be31d Add response status code aliases on WP_Http for convenience.
These provide a more descriptive way to set response codes elsewhere,
so it's readable and less chance for the wrong response code to be
used such as 401 vs 403.

Props rmccue for the idea.
Fixes #35426.


git-svn-id: https://develop.svn.wordpress.org/trunk@36294 602fd350-edb4-49c9-b593-d223f7449a82
2016-01-14 03:15:24 +00:00
John Blackbourn
858cf7d215 Docs: Miscellaneous docblock code quality tweaks.
See #32246


git-svn-id: https://develop.svn.wordpress.org/trunk@36074 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-23 07:52:04 +00:00
Drew Jaynes
46ae6f1892 Docs: Syntax fixes for deprecating WP_Http::parse_url().
See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@35375 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-23 15:42:51 +00:00
Dion Hulse
cacd015856 WP_HTTP: Promote the WP_HTTP::parse_url() method to a more generic wp_parse_url() function.
Fixes #34408


git-svn-id: https://develop.svn.wordpress.org/trunk@35369 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-23 05:53:05 +00:00
Scott Taylor
10133131e7 Docs: object != class
See [33893] et al.


git-svn-id: https://develop.svn.wordpress.org/trunk@34585 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-26 07:03:17 +00:00
Drew Jaynes
45b8138b97 Docs: Improve the summary and description for the pre_http_request filter docs to better illustrate expected values.
The filter explicitly expects one of three passed value types:

*  An array containing 'headers', 'body', 'response', 'cookies', and 'filename' elements
*  A `WP_Error` instance
*  Boolean false (to avoid short-circuiting the response)

Props johnbillion.
Fixes #33995.


git-svn-id: https://develop.svn.wordpress.org/trunk@34509 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-24 18:51:13 +00:00
John Blackbourn
c0c2a76778 Place the filter docblock for http_api_transports immediately above the filter.
See #33413
Props dd32


git-svn-id: https://develop.svn.wordpress.org/trunk@34174 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-15 08:11:11 +00:00
Scott Taylor
2c91a4d1e0 Fix the case-sensitivity of some HTTP class usage.
See #33413.


git-svn-id: https://develop.svn.wordpress.org/trunk@34123 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-14 17:36:37 +00:00
Drew Jaynes
77a4ee7659 Docs: Add a missing file header for wp-includes/class-http.php.
Also clarifies the class DocBlock summary for `WP_Http` to more clearly describe its purpose.

See #33413. See #33701.


git-svn-id: https://develop.svn.wordpress.org/trunk@33880 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-03 03:38:45 +00:00
Scott Taylor
f4ecd11e10 HTTP: move classes into their own files, http.php loads the new files, so this is 100% BC if someone is loading http.php directly. New files created using svn cp.
`class-http.php` requires functions from `http.php`, so loading it by itself wouldn't have worked.

Creates: 
`class-wp-http-cookie.php` 
`class-wp-http-curl.php` 
`class-wp-http-encoding.php` 
`class-wp-http-proxy.php` 
`class-wp-http-streams.php` 
`http-functions.php` 

`WP_Http` remains in `class-http.php`.

`http.php` contains only top-level code. Class files only contain classes. Functions file only contains functions.

See #33413.


git-svn-id: https://develop.svn.wordpress.org/trunk@33748 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-26 03:55:00 +00:00
Scott Taylor
f162be6046 For doc block types, favor bool over the few remaining booleans
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32964 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-27 01:02:12 +00:00
Dion Hulse
306d8b6a1e WP_HTTP: ensure that the temporary file is created within the temporary directly when stream is specified without a filename parameter.
Fixes #32549


git-svn-id: https://develop.svn.wordpress.org/trunk@32712 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-09 03:54:49 +00:00
Scott Taylor
c8a44d437a Add @static* annotations where they are missing.
Initialize all static vars that are not, most to `null`.

See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32650 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-29 15:42:40 +00:00
Scott Taylor
febd12c957 Clean up @global doc blocks/imports for class-wp-customizer-*.php and friends.
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32542 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-22 05:05:19 +00:00
Scott Taylor
8ba3c105a0 self should be used for accessing local static members.
See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31683 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-09 02:21:04 +00:00
Scott Taylor
3c810c5872 There are a few functions that have the ability to return false instead of a string, so the return value should be checked before being passed to functions that expect string.
These are trivial, but they clear out some Scrutinizer issues.

See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31681 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-09 02:10:36 +00:00
Dion Hulse
db3a49f8c8 HTTP API: Fix an issue where the limit_response_size parameter wasn't working properly with large documents and the cURL transport.
Fixes #31172


git-svn-id: https://develop.svn.wordpress.org/trunk@31290 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-29 03:57:42 +00:00
Scott Taylor
349e5cb318 Adding a @return annotation to constructors is generally not recommended as a constructor does not have a meaningful return value. Constructors do not have meaningful return values, anything that is returned from here is discarded.
See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31126 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-10 06:53:48 +00:00
Scott Taylor
6fd11624d1 The keyword elseif should be used instead of else if so that all control keywords look like single words.
This was a mess, is now standardized across the codebase, except for a few 3rd-party libs. 

See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31090 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-08 07:04:40 +00:00
Drew Jaynes (DrewAPicture)
2b8a662873 Fix a typo in the DocBlock for WP_Http_Curl::$bytes_written_total introduced in [29968].
Props kpdesign.
See #26726.


git-svn-id: https://develop.svn.wordpress.org/trunk@30767 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-07 05:15:50 +00:00
Scott Taylor
4d46475b3d Improve various @param docs for src/wp-includes/*.
See #30224.


git-svn-id: https://develop.svn.wordpress.org/trunk@30681 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-01 01:33:34 +00:00
Drew Jaynes (DrewAPicture)
9832941b66 4.1 Docs Audit: Fix some line-wrapping in the DocBlock for WP_Http::parse_url().
See #30469.


git-svn-id: https://develop.svn.wordpress.org/trunk@30604 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-28 09:13:31 +00:00
Drew Jaynes (DrewAPicture)
f843741d33 Ensure inline code is markdown-escaped as such, and that code snippets in descriptions are properly indented.
Affects DocBlocks for the following core elements:
* Two arguments in `_walk_bookmarks()`
* A code snippet in the class header for `WP_Roles`
* A code snippet in the class header for `WP_HTTP_Proxy`
* Inline code fixes in the summary and a parameter description for `WP_oEmbed::discover()`
* An argument description in `_WP_Editors::parse_settings()`
* Inline code fixes in the summary and a parameter description the `embed_oembed_discover` hook.

Props rarst.
See #30473.


git-svn-id: https://develop.svn.wordpress.org/trunk@30536 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-24 04:41:15 +00:00
Drew Jaynes (DrewAPicture)
3cc10d77a0 Remove redundant and erroneous @uses tag from most core inline documentation.
Per our inline documentation standards, no further use of the `@uses` tag is recommended as used and used-by relationships can be derived through other means. This removes most uses of the tag in core documentation, with remaining tags to be converted to `@global` or `@see` as they apply.

Fixes #30191.


git-svn-id: https://develop.svn.wordpress.org/trunk@30105 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-30 01:04:55 +00:00
Dion Hulse
5bcbdefd2e HTTP API: Support both the 'limit_response_size' and 'stream' parameters at the same time, allowing a partial file download.
Fixes #26726


git-svn-id: https://develop.svn.wordpress.org/trunk@29968 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-20 07:31:45 +00:00
Dion Hulse
8ff133f232 Add some unit tests for WP_HTTP::parse_url() to cover the <PHP 5.4.7 compatibility alterations.
These unit tests cover the expected vehaviour of certain combinations of URL's, but makes no attempt to test invalid URL structures, as PHP's behavious for invalid URL's is undefined (Some will be treated as paths, others fail, and it varies between PHP 5.4.7+ and <5.4.7).
This change also makes WP_HTTP::parse_url() protected in order to allow unit testing.
See #28001, #29886


git-svn-id: https://develop.svn.wordpress.org/trunk@29864 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-09 03:00:16 +00:00
Dion Hulse
c8b53c2d1a Handle deficiencies in PHP's parse_url in older versions of PHP (<5.4.7) in WP_HTTP::make_absolute_url().
In older versions of PHP:
- parse_url() will fail to parse a url where the scheme break (://) is present in a relative URL's path
- parse_url() will include the hostname of a schemeless URL in the path component

This handles those two types of URL's by correcting the response from parse_url().

Fixes #28001, #29886


git-svn-id: https://develop.svn.wordpress.org/trunk@29861 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-09 01:10:25 +00:00
Dion Hulse
eb39c8f75d Avoid a PHP Notice when requesting a url without a path component (http://example.com) in the Streams HTTP component.
Props barrykooij for inital patch; Fixes #27668


git-svn-id: https://develop.svn.wordpress.org/trunk@29853 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-08 06:43:14 +00:00
Dion Hulse
45cd55bfc4 When making a HTTP request to a non-standard port, include the port in the Host header for the Streams HTTP transport. This bring parity to the cURL transport and respects the HTTP RFC.
Props kamelkev for the initial patch; Fixes #28982


git-svn-id: https://develop.svn.wordpress.org/trunk@29852 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-08 06:14:58 +00:00
Dion Hulse
4ae1397f96 Correctly support Schemeless URLs in WP_HTTP::make_absolute_url() by respecting the 'host' field if present in the relative url.
Fixes #29886


git-svn-id: https://develop.svn.wordpress.org/trunk@29851 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-08 05:57:15 +00:00
Dion Hulse
e4268adfde Correctly handle url's containing url's in WP_HTTP::make_absolute_url().
A valid relative URL could be mistaken for an absolute url if it contained a :// in any position of the url.
Fixes #28001


git-svn-id: https://develop.svn.wordpress.org/trunk@29850 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-08 05:37:56 +00:00
Dion Hulse
60b8ed120a Always cast the 'code' server response to an int, this provides consistency between both of the HTTP transports.
Previously cURL would return an int and Streams a numeric string.
Fixes #28887


git-svn-id: https://develop.svn.wordpress.org/trunk@29849 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-08 05:20:01 +00:00
Dion Hulse
2ed0d6cae0 Return the correct server response for the 'message' response field from the server.
Previously this would use the generic message corresponding to the response code, which isn't always accurate. Since we're already parsing the headers, we can simply return that directly (This also has the benefit that it's the same code for both Streams and Curl header handling).
Fixes #28919


git-svn-id: https://develop.svn.wordpress.org/trunk@29848 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-08 05:18:22 +00:00
Mark Jaquith
be8a0c6f89 Use HTTPS URLs for trac.wordpress.org (and use core.trac.wordpress.org)
see #27115

git-svn-id: https://develop.svn.wordpress.org/trunk@29789 602fd350-edb4-49c9-b593-d223f7449a82
2014-09-29 13:36:38 +00:00
Mark Jaquith
7063377539 Use HTTPS URLs for core.trac.wordpress.org
see #27115

git-svn-id: https://develop.svn.wordpress.org/trunk@29788 602fd350-edb4-49c9-b593-d223f7449a82
2014-09-29 13:27:55 +00:00
Sergey Biryukov
cac2366382 Avoid PHP notices when checking for local requests in in WP_Http.
props markoheijnen.
fixes #29392.

git-svn-id: https://develop.svn.wordpress.org/trunk@29661 602fd350-edb4-49c9-b593-d223f7449a82
2014-09-02 02:05:48 +00:00
Drew Jaynes (DrewAPicture)
ab6063cc88 Fix some documentation typos in various core files.
Props vlajos.
Fixes #29199.


git-svn-id: https://develop.svn.wordpress.org/trunk@29479 602fd350-edb4-49c9-b593-d223f7449a82
2014-08-13 03:55:10 +00:00
Drew Jaynes (DrewAPicture)
b4e97b5d5a Convert documentation for default arguments in WP_Http::request() to a hash notation.
Also update corresponding docs for functions that leverage its arguments.

See #28298.


git-svn-id: https://develop.svn.wordpress.org/trunk@29230 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-18 22:00:51 +00:00
Drew Jaynes (DrewAPicture)
9ea77904ba Fix syntax for single- and multi-line comments in wp-includes/class-http.php.
See #28943 and #28931.


git-svn-id: https://develop.svn.wordpress.org/trunk@29229 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-18 21:46:24 +00:00
John Blackbourn
bda49ba928 Update some inline docs for the WP_Http class. Fixes #28943.
git-svn-id: https://develop.svn.wordpress.org/trunk@29223 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-18 18:14:09 +00:00
Drew Jaynes (DrewAPicture)
9406ccb8c6 Convert default arguments documentation for WP_Http_Cookie::__construct() into a hash notation.
Props coffee2code for the initial patch.
See #28841.


git-svn-id: https://develop.svn.wordpress.org/trunk@29107 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-11 22:49:50 +00:00
Sergey Biryukov
b864d0955e Avoid a PHP notice and warning on language selection screen.
props meekyhwang.
fixes #28648.

git-svn-id: https://develop.svn.wordpress.org/trunk@28865 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-27 00:24:36 +00:00
Scott Taylor
0d5768f0f4 Add access modifier to methods of HTTP classes. There are no new private or protected methods, so no need for __call().
See #27881, #22234.


git-svn-id: https://develop.svn.wordpress.org/trunk@28506 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-19 05:33:08 +00:00
Scott Taylor
c5463c5cb2 In WP_Http_Curl::request(), $theResponse is unused. There are other curl_exec() calls that do not return as well.
See #27882.


git-svn-id: https://develop.svn.wordpress.org/trunk@28317 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-06 18:26:00 +00:00