I Online MMORPG Champions bir sunucu durumunu kurmak için çalışıyorum. Ben web master bazı temel bilgileri var ve bu bana söyledi hepsi:
- XML-RPC çağrısı sunucuya: http://www.champions-online.com/xmlrpc.php
- işlev adı: wgsLauncher.getServerStatus
- Parametre (dil): tr-TR
Şimdi, here ile başlamak için güzel bir örnek buldum ve bu kod ile sona erdi:
<?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;
?>
Ama "400 Bad Request" hatası alıyorum. Ben XML RPC için yeni ve ben zar zor php biliyorum, bu yüzden bir kayıp değilim. examples php site bir parametre olarak bir dizi nasıl kullanılacağını göstermek, ama başka hiçbir şey.
Ben bu XMLRPC Debugger (btw çok güzel) gelen parametre dize <param><value><string>en-US</string></value></param>
elde. Ben "yük" kutusunda gerekli parametre girmiş ve bu çıkış oldu.
Yani, ben başlığına bu parametreyi geçmek konusunda herhangi bir yardım takdir ediyorum.
Not: Benim ev sahibi destekleri xmlrpc ama işlevi "xmlrpc_client" görünüyor yok.
Güncelleme: web master bu bilgiler ile cevap verdi, ama hala çalışmıyor ... ben sadece sayfanın dışına durumunu kazımak edebilir noktaya gidiyor.
$request = xmlrpc_encode_request("wgsLauncher.getServerStatus", "en-US" );