Catalyst Theme - WordPress Accelerated

“An Unexpected HTTP Error occurred during the API request” Error’s Solution

| April 19, 2010 | 23 Comments More

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

  1. Retomando Wordpress, algunos problemas. | Wirikuta | September 23, 2010
  1. TechChunks says:

    I increased the timeout period as the first time after setting up my blog ;)
    .-= TechChunks´s last blog ..Puppy Vs. Robot [Video] =-.

  2. 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 =-.

  3. TechOfWeb says:

    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 =-.

    • shivachettri says:

      It occurs due to your server’s configuration. I am sure your web hosting’s server is properly configured for WordPress :)

  4. Nice post mate! i have also faced this problem but never thought of fixing it! :D Thanks again bro :D
    .-= Pubudu Kodikara´s last blog ..Attach Files with “Drag and Drop” Function in Gmail =-.

  5. Heinrich says:

    This fix is not working in WordPress 3.0 well, at least it did not worked for me :(

  6. arjun says:

    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 JAFMy Profile

  7. eMagazine says:

    in wordpress 3.0 find class-http.php in wp-includes folder

  8. Atif says:

    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

  9. Huteri says:

    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 HilversMy Profile

  10. Matt says:

    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 PHPMy Profile

  11. sikasep says:

    i have change the timeout to be 30 but still display error :(

  12. i have also change the timeout to be 30 but still display error

    • margaret says:

      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.

  13. 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?

    • margaret says:

      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

  14. Jane Araguel from Grand Harbor condominiums says:

    I haven’t encountered such problem yet. Bookmarked the page! I might need this in the future! Thanks for sharing!

  15. tech geek says:

    I will definitely try this in case of facing same error

  16. Dejko
    Twitter:
    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

Leave a Reply

CommentLuv badge
This blog uses premium CommentLuv which allows you to put your keywords with your name if you have had 3 approved comments. Use your real name and then @ your keywords (maximum of 3)