PHP CURL / JSON-RPC Problem

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
blunt
Forum Newbie
Posts: 2
Joined: Thu Aug 24, 2006 5:37 am

PHP CURL / JSON-RPC Problem

Post by blunt »

feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


Hello, I am having a problem using CURL to query a JSON-RPC server, If I do the following using CURL via commandline:
[quote]-bash-2.05b$ curl --data-binary '{"method": "push", "value": "hello"}' -H 'content-type: text/plain;'  http://192.168.5.37:8080/json                         
"OK"-bash-2.05b$
-bash-2.05b$ curl --data-binary '{"method": "pop"}' -H 'content-type: text/plain;'  http://192.168.5.37:8080/json
"hello"-bash-2.05b$
[/quote]
This executes successfully as you can see, now I have the following PHP Code:

Code: Select all

<?php
// setup json data
$url = "http://192.168.5.37:8080/json";
$post_data = array('method' => 'push', 'value' => 'testing');
$post_data = json_encode($post_data);
echo $post_data.'<br/>';
// execute json request
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 'content-type: text/plain;');
curl_setopt($ch, CURLOPT_TRANSFERTEXT, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// decode result
if ($result = @curl_exec($ch)) {
	echo 'query success<br/><pre>';
	print_r(json_decode($result));
	echo '</pre>';
} else {
	'query failed';
}
curl_close($ch);
?>
Script outputs the following:

Code: Select all

{"method":"push","value":"testing"}
query success

stdClass Object
(
    [response] => stdClass Object
        (
            [error] => Unkown method, list of known methods: ['push', 'pop']
        )

)
Is there anything here I am doing wrong, I have set it to post the data using plaintext in the correct json format... something I'm missing here?


feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]
Post Reply