XML-RPC server accepts POST requests only – WordPress Error

May 19th, 2007

Lost an hour today to trying to debug Ecto posting to this weblog (if you're not using Ecto, you should consider it).

I was constantly getting this error:

XML-RPC server accepts POST requests only

Finally I wrote up a nice little support ticket for Dreamhost with all the details. Surprisingly I got the fix back in relatively short order.

I was wondering what the problem with WordPress was. It turned out to be a PHP 5.2.2 bug. The file xmlrpc.php is broken under PHP 5.2.2. As WordPress is the weblog system in widest use in the entire world, it would be nice if the PHP team would get with the real world and debug their releases before rolling them out.

The solution, for now, is to edit the xmlrpc.php file in your WordPress installation and add the following code:


if (phpversion()=="5.2.2") $GLOBALS['HTTP_RAW_POST_DATA'] =
file_get_contents("php://input");


The beginning of my xmlrpc.php file looks like this:


define('XMLRPC_REQUEST', true);

// Some browser-embedded clients send cookies. We don't want them.
$_COOKIE = array();

if (phpversion()=="5.2.2") $GLOBALS['HTTP_RAW_POST_DATA'] =
file_get_contents("php://input");


And XMLRPC is now working again.

I made this fix and now Ecto works a charm again. Alas, this isn't the first time a PHP error has brough XMLRPC/Ecto down on WordPress weblogs.

A number of things went wrong here:

  1. the PHP developers dropped the ball on their debugging
  2. Dreamhost dropped the ball rolling out 5.2.2 with such a bug in it
  3. Dreamhost dropped the ball a final time by not proactively notifying all its customers who are running WordPress weblogs about this bug

I've made this post as I was unable to find any useful information about the XML-RPC serve accepts POST requests only bug when searching Google for that phrase plus WordPress and plus Ecto. I hope other unfortunates find this post more quickly than I found the solution.

WordPress | Comments | Trackback

del.icio.us Digg Ma.gnolia StumbleUpon Technorati Jump to the top of this page

 

16 comments on “XML-RPC server accepts POST requests only – WordPress Error”

  1. 01

    http://wordpress.org/support/topic/117421

    Google “XML-RPC server accepts POST requests only” wordpress

    Sometimes being too specific is the wrong direction.

    Jason. at May 20th, 2007 around 12:00 am
    Jump to the top of this page
  2. 02

    Thank you for posting this – it worked for me too!

    Emily at May 21st, 2007 around 10:01 am
    Jump to the top of this page
  3. 03

    Thanks, this works for me :)

    Paranoid Android at May 30th, 2007 around 4:17 pm
    Jump to the top of this page
  4. 04

    Also me, thanks!

    Peter Cooper at May 30th, 2007 around 5:50 pm
    Jump to the top of this page
  5. 05

    Wow you have saved me such a head ache..

    Ristac at May 31st, 2007 around 4:35 am
    Jump to the top of this page
  6. 06

    Thanks! Tengo la solucian ahora!

    Fabian at June 1st, 2007 around 7:52 pm
    Jump to the top of this page
  7. 07

    Thanks for your post. It fixed the problem and I’m able to use ecto again.

    Jen at June 7th, 2007 around 4:06 am
    Jump to the top of this page
  8. 08

    Still can’t get it to work, can’t get rid of this ‘XML-RPC server accepts POST requests only.’

    What do I do?

    mark at August 26th, 2009 around 1:27 pm
    Jump to the top of this page
  9. 09

    Hi Mark,

    This may have changed in the latest WordPress (2.7+) as the external posting functionality has been enhanced. If you figure it out, please let me know so I can update our information to cover the latest versions.

    alec at August 27th, 2009 around 9:00 am
    Jump to the top of this page
  10. 10

    Same error, but the above doesn’t fix. Have WordPress version 2.5.1 with PHP 5.2.3.

    I’m trying to use Windows Live Writer to post to my wordpress site, but it says:

    The server reported an error with the following URL:
    …/xmlrpc.php
    403 Forbidden

    When I go to my xmlrpc.php page it says:
    XML-RPC server accepts POST requests only.

    Ideas?

    trent at November 8th, 2009 around 3:45 pm
    Jump to the top of this page
  11. 11

    Hello trent,

    upgrade from 2.5.1 to 2.8 shouldn’t be that hard, so I would recommend you to do that. Not only the XML RPC will work, but your blog will be more secure.

    Thanks,
    M.

    Martin at November 10th, 2009 around 5:27 am
    Jump to the top of this page
  12. 12

    I am using PHP version 4.2.3
    Is there any problem for working of XML-RPC ?

    uttam at July 7th, 2010 around 4:07 am
    Jump to the top of this page
  13. 13

    Sorry, but the above doesn’t fix. Have WordPress version 3.0 with PHP 5.2.5.

    I’m trying to use Windows Live Writer to post to my wordpress site, but it says:

    The server reported an error with the following URL:
    …/xmlrpc.php
    Forbidden

    When I go to my xmlrpc.php page it says:
    XML-RPC server accepts POST requests only.

    Why?

    Why at July 28th, 2010 around 6:41 pm
    Jump to the top of this page
  14. 14

    Hi Why,

    It’s probably a permissions issue. Let us know how/if you solve it.

    Thanks.

    alec at August 1st, 2010 around 3:17 pm
    Jump to the top of this page
  15. 15

    Yes?I think it’s the permissions issue, because “always_populate_raw_post_data” is off, thank you.

    Why at August 1st, 2010 around 6:38 pm
    Jump to the top of this page
  16. 16

    Hello Why,

    this fix is 2 years old, it’s for older WordPress versions. It doesn’t seem to occur on WordPress 3.0.

    If you get “XML-RPC server accepts POST requests only.” when you access xmlrpc.php via browser, that’s ok.

    Is “Forbidden” really the whole error message you get? You can try to disabled mod_security by placing the following into .htaccess:


    SecFilterRemove 114

    Looks like some people with iPhones have this issue: http://iphone.forums.wordpress.org/topic/403-forbidden

    Hello uttam,

    no, that should not make any difference, if you are on a new WP (which is PHP > 4.3 only, so I would try to update both PHP and WP first).

    Thanks,
    Martin

    Martin at August 10th, 2010 around 2:51 am
    Jump to the top of this page

Leave a Reply

  •  
  •  
  •  

You can keep track of new comments to this post with the comments feed.