【发布时间】:2010-03-16 21:39:50
【问题描述】:
我正在尝试为 MMORPG Champions Online 设置服务器状态。我从网站管理员那里得到了一些基本信息,这就是他告诉我的全部信息:
- 对服务器的 XML-RPC 调用:http://www.champions-online.com/xmlrpc.php
- 函数名:wgsLauncher.getServerStatus
- 参数(语言):en-US
现在,我找到了一个以 here 开头的好例子,我最终得到了以下代码:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
# Using the XML-RPC extension to format the XML package
$request = xmlrpc_encode_request("wgsLauncher.getServerStatus", "<param><value><string>en-US</string></value></param>", null );
# Using the cURL extension to send it off,
# first creating a custom header block
$header[] = "Host: http://www.champions-online.com:80/";
$header[] = "Content-type: text/xml";
$header[] = "Content-length: ".strlen($request) . "\r\n";
$header[] = $request;
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, "http://www.champions-online.com/xmlrpc.php"); # URL to post to
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); # return into a variable
curl_setopt( $ch, CURLOPT_HTTPHEADER, $header ); # custom headers, see above
curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, 'POST' ); # This POST is special, and uses its specified Content-type
$result = curl_exec( $ch ); # run!
curl_close($ch);
echo $result;
?>
但我收到“400 Bad Request”错误。我是 XML RPC 的新手,我几乎不知道 php,所以我很茫然。来自 php 站点的 examples 显示了如何使用数组作为参数,但仅此而已。
我从这个XMLRPC Debugger 获得了参数字符串<param><value><string>en-US</string></value></param>(顺便说一句非常好)。我在“有效载荷”框中输入了我需要的参数,这就是输出。
所以,如果能提供有关如何将此参数传递给标头的任何帮助,我将不胜感激。
注意:我的主机支持xmlrpc,但似乎“xmlrpc_client”函数不存在。
更新:网站管理员回复了此信息,但它仍然无法正常工作......它已经到了我可能只是从页面上刮掉状态的地步。
$request = xmlrpc_encode_request("wgsLauncher.getServerStatus", "en-US" );
【问题讨论】:
标签: php parameters curl xml-rpc