“An Unexpected HTTP Error occurred during the API request” Error’s Solution
If you are receiving Error on WordPress Admin Dashboard ‘An Unexpected HTTP Error occurred during the API request’ then here is a fix. Go to Root directory of your web server where your wordpress blog is installed and then wp-includes folder and find http.php. Download it and open it with php or any html editor and go to line no. 223 and find 'timeout' => apply_filters( 'http_request_timeout', 5), and replace it with 'timeout' => apply_filters( 'http_request_timeout', 30),. Save it and upload it to wp-includes directory.
Category: Wordpress
About the Author (Author Profile)
Designer’s Digest passionately delivers free resources for Designers, Bloggers and Web Developers on all subjects of design, ranging from: Vector Graphics, CSS, Ajax, Blogging Platform, Social Networking, Web design, Advertising & much more. Our aim is to help and provides free resources for Designers, Bloggers and Web Developers.Comments (23)
Trackback URL | Comments RSS Feed
Sites That Link to this Post
- Retomando Wordpress, algunos problemas. | Wirikuta | September 23, 2010





I increased the timeout period as the first time after setting up my blog
.-= TechChunks´s last blog ..Puppy Vs. Robot [Video] =-.
Wicked…
I yet not faced it but thanks for this nice little tutorial.
.-= Arafat Hossain Piyada´s last blog ..MovieRecipes: Find Food Recipes Which You Watch In Movies =-.
me too havent faced this till now
is there any specific reason why the exception comes?
ATUL
.-= TechOfWeb´s last blog ..Download free 6 months license of GData 2010 =-.
It occurs due to your server’s configuration. I am sure your web hosting’s server is properly configured for WordPress
Nice post mate! i have also faced this problem but never thought of fixing it!
Thanks again bro 
.-= Pubudu Kodikara´s last blog ..Attach Files with “Drag and Drop” Function in Gmail =-.
Well me too same here…but recently I thought why not solve it out
This fix is not working in WordPress 3.0 well, at least it did not worked for me
in wordpress 3.0 at http.php there are only 197 lines and there is nothing like timeout.
check this
“<?php
/**
* Simple and uniform HTTP request API.
*
* Will eventually replace and standardize the WordPress HTTP requests made.
*
* @link http://trac.wordpress.org/ticket/4779 HTTP API Proposal
*
* @package WordPress
* @subpackage HTTP
* @since 2.7.0
*/
/**
* Returns the initialized WP_Http Object
*
* @since 2.7.0
* @access private
*
* @return WP_Http HTTP Transport object.
*/
function &_wp_http_get_object() {
static $http;
if ( is_null($http) )
$http = new WP_Http();
return $http;
}
/**
* Retrieve the raw response from the HTTP request.
*
* The array structure is a little complex.
*
*
* $res = array( 'headers' => array(), 'response' => array('code' => int, 'message' => string) );
*
*
* All of the headers in $res['headers'] are with the name as the key and the
* value as the value. So to get the User-Agent, you would do the following.
*
*
* $user_agent = $res['headers']['user-agent'];
*
*
* The body is the raw response content and can be retrieved from $res['body'].
*
* This function is called first to make the request and there are other API
* functions to abstract out the above convoluted setup.
*
* @since 2.7.0
*
* @param string $url Site URL to retrieve.
* @param array $args Optional. Override the defaults.
* @return WP_Error|array The response or WP_Error on failure.
*/
function wp_remote_request($url, $args = array()) {
$objFetchSite = _wp_http_get_object();
return $objFetchSite->request($url, $args);
}
/**
* Retrieve the raw response from the HTTP request using the GET method.
*
* @see wp_remote_request() For more information on the response array format.
*
* @since 2.7.0
*
* @param string $url Site URL to retrieve.
* @param array $args Optional. Override the defaults.
* @return WP_Error|array The response or WP_Error on failure.
*/
function wp_remote_get($url, $args = array()) {
$objFetchSite = _wp_http_get_object();
return $objFetchSite->get($url, $args);
}
/**
* Retrieve the raw response from the HTTP request using the POST method.
*
* @see wp_remote_request() For more information on the response array format.
*
* @since 2.7.0
*
* @param string $url Site URL to retrieve.
* @param array $args Optional. Override the defaults.
* @return WP_Error|array The response or WP_Error on failure.
*/
function wp_remote_post($url, $args = array()) {
$objFetchSite = _wp_http_get_object();
return $objFetchSite->post($url, $args);
}
/**
* Retrieve the raw response from the HTTP request using the HEAD method.
*
* @see wp_remote_request() For more information on the response array format.
*
* @since 2.7.0
*
* @param string $url Site URL to retrieve.
* @param array $args Optional. Override the defaults.
* @return WP_Error|array The response or WP_Error on failure.
*/
function wp_remote_head($url, $args = array()) {
$objFetchSite = _wp_http_get_object();
return $objFetchSite->head($url, $args);
}
/**
* Retrieve only the headers from the raw response.
*
* @since 2.7.0
*
* @param array $response HTTP response.
* @return array The headers of the response. Empty array if incorrect parameter given.
*/
function wp_remote_retrieve_headers(&$response) {
if ( is_wp_error($response) || ! isset($response['headers']) || ! is_array($response['headers']))
return array();
return $response['headers'];
}
/**
* Retrieve a single header by name from the raw response.
*
* @since 2.7.0
*
* @param array $response
* @param string $header Header name to retrieve value from.
* @return string The header value. Empty string on if incorrect parameter given, or if the header doesnt exist.
*/
function wp_remote_retrieve_header(&$response, $header) {
if ( is_wp_error($response) || ! isset($response['headers']) || ! is_array($response['headers']))
return ”;
if ( array_key_exists($header, $response['headers']) )
return $response['headers'][$header];
return ”;
}
/**
* Retrieve only the response code from the raw response.
*
* Will return an empty array if incorrect parameter value is given.
*
* @since 2.7.0
*
* @param array $response HTTP response.
* @return string the response code. Empty string on incorrect parameter given.
*/
function wp_remote_retrieve_response_code(&$response) {
if ( is_wp_error($response) || ! isset($response['response']) || ! is_array($response['response']))
return ”;
return $response['response']['code'];
}
/**
* Retrieve only the response message from the raw response.
*
* Will return an empty array if incorrect parameter value is given.
*
* @since 2.7.0
*
* @param array $response HTTP response.
* @return string The response message. Empty string on incorrect parameter given.
*/
function wp_remote_retrieve_response_message(&$response) {
if ( is_wp_error($response) || ! isset($response['response']) || ! is_array($response['response']))
return ”;
return $response['response']['message'];
}
/**
* Retrieve only the body from the raw response.
*
* @since 2.7.0
*
* @param array $response HTTP response.
* @return string The body of the response. Empty string if no body or incorrect parameter given.
*/
function wp_remote_retrieve_body(&$response) {
if ( is_wp_error($response) || ! isset($response['body']) )
return ”;
return $response['body'];
}
?>
”
arjun recently posted..Flashing with JAF
in wordpress 3.0 find class-http.php in wp-includes folder
I don’t have line 223 in http.php file. Mine is only 169 lines long. and yes it does not have that request() method as well. how can i fix it now? please help
humm.. yes i have same problem.. But i can’t fix it with this tips.. other solution?
Huteri recently posted..Comment on Some Tips For Clean Skin On Face by Erick Hilvers
First off, I can’t say I know how I fixed this, but here are the last changes I made before rebooting to find that the issue stopped:
1) set hosts file as such:
127.0.0.1 hostname.mydomain.com mydomain.com
2) installed php5curl, since WP supposedly looks for different methods to use, curl being one of them, I just installed it.
3) made sure my domain name was able to be pinged through my router – not sure if this has anything at all to do with it at all or not, but I could not previously ping it. This is a self-hosted (at home) installation on Debian Lenny with a WP multi-site configuation.
4) rebooted and voila!
Ensure you are not getting any errors about not being able to resolve the FQDN when starting your apache2 service (/etc/init.d/apache2 restart). I kept getting this and I no longer get it after making the hosts file changes at /etc/hosts. I am using Debian – Lenny, btw.
Matt recently posted..Adding a dynamic footer date with PHP
i have change the timeout to be 30 but still display error
hay alguna solucion para esto? seguire buscando
i have also change the timeout to be 30 but still display error
try to change the timeout to 0. 0 means no timeout limit. but if the problem still occur that means maybe the restriction of server connection is applied. try contact your webhost.
I am also getting same error.I am using latest version of wordpress.I can,t find any line in wp-includes/http.php.Can anyone tell me please how should i solve this issue please?
You must edit class-http.php and there you can find
‘timeout’ => apply_filters( ‘http_request_timeout’, 5)
and change it to
‘timeout’ => apply_filters( ‘http_request_timeout’, 30)
1.) go to wp-includes>>class-http.php
2.)find
‘timeout’ => apply_filters( ‘http_request_timeout’, 5)
3.)change it to
‘timeout’ => apply_filters( ‘http_request_timeout’, 30)
Please refer to original post. thank you
I haven’t encountered such problem yet. Bookmarked the page! I might need this in the future! Thanks for sharing!
I will definitely try this in case of facing same error
Twitter: stainlessmetal
says:
for wordpress 3 xxx – guys just follow the instruction
Edit file plugin-install.php
in directory wp-admin/includes
and find the timeout setting. It is by default set to 15. Increase to 60.
$request = wp_remote_post(‘http://api.wordpress.org/plugins/info/1.0/’, array( ‘timeout’ => 60, ‘body’ => array(‘action’ => $action, ‘request’ => serialize($args))) );
Best air freshener