[wp-hackers] WP HTTP Client
Jacob Santos
wordpress at santosj.name
Sun Sep 7 02:28:40 GMT 2008
Ryan McCue wrote:
> Eric Marden wrote:
>
>> I think I remember seeing a post come across the list about the 'best'
>> way to make HTTP calls (get/post) inside of a wordpress plugin, and
>> that some said there was a class or set of functions for that. Are we
>> talking about wp-includes/class-snoopy.php or is there a better way?
>>
>
> Jacob Santos' work on it is wp-includes/http.php in trunk (and slated
> for 2.7).
>
> Thanks,
> Ryan M.
>
Eric,
I had hoped to create something that would totally own Snoopy, but
whatever, the http.php file includes three functions for making HTTP
requests. All of them handle redirection 301, all of them also handle
HTTP 1.1 content chunk encoding (some hosts insist on sending chunk
encoding when HTTP 1.0 requests are made, the bastards!).
I plan on writing a codex page on how to use the functions but
basically, you
wp_remote_request("http://www.wordpress.org"); <--- This is used to test
for redirection, if you get nothing, then redirection failed!
There are additional arguments you can set for the second parameter. I
think I'll save that for the codex page.
wp_remote_get("http://wordpress.org"); <---- This sends the request as a
GET.
wp_remote_post("http://wordpress.org", array( 'body' =>
array('something' => 'else') )); <--- This sends the request as a POST.
Yeah, if you send the body as an array, it will be automatically url
encoded and the correct header set.
It does a lot for you to make it extremely easy and standard throughout
the transports used. This also means that there will be bugs and I
strongly encourage people to test the HTTP API as much as possible.
There might be a bug in one transport that isn't in the other
transports. The good news is that most of the transports have been
battle tested for about two weeks, so the majority of people shouldn't
have problems, the bad news is that if you have problems you'll probably
be SOL.
When I say you, I don't mean you, I mean the person who experiences
problems when 2.7 is released. However, the probably of that happening
goes down with the more people using it and the longer people use it the
more stable it will be. With five transports, it gets pretty tricky from
this point. I would suggest installing the pecl HTTP extension, if you
don't already have it, it appears to be the most stable.
Jacob Santos
More information about the wp-hackers
mailing list