Başlığında bir parametre geçirerek (XML RPC)

1 Cevap php

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:

Ş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" );

1 Cevap

Ben this site üzerinde bulunan kodu maç için cURL kodu değişti zaman çalıştı çünkü Tamam, ben nihayet, bu başlıkta bir sorun gibi görünüyordu ... benim cevap anladım. Sonrası uzaktan php XMLRPC kullanarak wordpress sonrası hakkında olduğunu.

Bu ben ile sona kodu:

<?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", "en-US" );

$ch = curl_init();
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_URL, "http://www.champions-online.com/xmlrpc.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
$result = curl_exec($ch);
curl_close($ch);

$method = null;
$params = xmlrpc_decode_request($result, &$method); 

# server status result = true (up) or false (down)
$status = ($params['status']) ? 'up' : 'down';
$notice = ($params['notice'] == "") ? "" : "Notice: " + $params['notice'];
echo "Server Status: " . $status . "<br>";
echo $notice;

?>