提供されている SOAP Web サービスを介して PHP スクリプトをMoodle 2.0 に接続するのに苦労しています。SOAP についてあまり知らなかったので、単純に接続してそこから移動しようと考えました。なのに、全然繋がらない…。
$soap=new SoapClient(
'http://mymoodleserver/webservice/xmlrpc/server.php?wstoken=asdfasdfasdfasdfasdf',
array(
'trace'=>1,
'exceptions'=>true,
'cache_wsdl'=>WSDL_CACHE_NONE
)
);
これは以下を返します:
致命的なエラー: キャッチされない SoapFault 例外: [WSDL] SOAP-ERROR: WSDL の解析: 読み込めませんでした...
この URL に直接アクセスしても、データは返されません。Fiddler で見ると、サーバーが実際に Content-Length 0 を返していることがわかります。
私が見つけることができるこれに関するドキュメントはありません...ただし、他のプロトコルのドキュメントがあります。
SoapClientは、使用可能な機能を定義するために何らかの WSDL を期待していると想定しています。これらの関数とパラメーターのリストがあります(公式ドキュメントページのおかげではありません)。SoapClient に WSDL を気にせずに続行するように指示するにはどうすればよいですか?
Moodle サーバーの PHP エラー ログでエラーを確認しましたが、問題はありませんでした。