Я пытаюсь настроить статус сервера для MMORPG Champions Online. Я получил некоторую основную информацию от веб-мастера, и это все, что он сказал мне:Передача параметра в заголовке (XML RPC)
- XML-RPC вызов к серверу: http://www.champions-online.com/xmlrpc.php
- имя функции: wgsLauncher.getServerStatus
- Параметр (язык): ен- США
Теперь, я нашел хороший пример, чтобы начать с 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, поэтому я в недоумении. examples с сайта php показывает, как использовать массив в качестве параметра, но больше ничего.
Я получил строку параметров <param><value><string>en-US</string></value></param>
из этого XMLRPC Debugger (очень приятно кстати). Я ввел параметр, который мне нужен в поле «полезная нагрузка», и это был результат.
Итак, я был бы признателен за любую помощь в том, как передать этот параметр в заголовок.
Примечание: Мой хост поддерживает xmlrpc, но, похоже, функция «xmlrpc_client» не существует.
Обновление: веб-мастер ответил с этой информацией, но она по-прежнему не работает ... это добраться до точки, я могу только скрести статус выключения страницы.
$request = xmlrpc_encode_request("wgsLauncher.getServerStatus", "en-US");