2016-06-01 3 views
0

NuSOAP APIに問題があります。ローカルホストでのNuSOAPサービスの応答

Uri uri = new Uri(ServiceConfiguration.SERVICE_URL); 

HttpClient hc = new HttpClient(); 

hc.DefaultRequestHeaders.Add("SOAPAction", ServiceConfiguration.SERVICE_URL + "/" + oRequest.Action); 

    var content = new StringContent(oRequest.RequestMessage, Encoding.UTF8, "text/xml"); 

    using (HttpResponseMessage response = await hc.PostAsync(uri, content)) 
      { 
      (...) 
      } 

だから基本的に、これはSOAPリクエストとXMLの封筒を掲示される:私はそうのような正しいXMLエンベロープを掲載することにより、このAPIを呼び出す.NETのコアアプリケーションを持っています。これをコンピュータで実行し、リモートのNuSOAP APIを呼び出すと、正しい応答が得られます.-> SOAP応答のあるXML。問題は、NuSOAP APIを私のPC(両方のローカルホスト)上で実行している場合です。私は非常に奇妙な応答(の奇妙なシンボルの負荷)を取得します。 NuSOAPがリモートであるとき、私が取得 - (無効なXML OK NOT)

"<br />\n<b>Deprecated</b>: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in <b>Unknown</b> on line <b>0</b><br />\n<br />\n<b>Warning</b>: Cannot modify header information - headers already sent in <b>Unknown</b> on line <b>0</b><br />\n<br />\n<b>Warning</b>: Cannot modify header information - headers already sent in <b></b> on line <b>3</b><br />\n<br />\n<b>Warning</b>: Cannot modify header information - headers already sent in <b></b> on line <b>4</b><br />\n<br />\n<b>Warning</b>: Cannot modify header information - headers already sent in <b></b> on line <b>5</b><br />\n<br />\n<b>Warning</b>: Cannot modify header information - headers already sent in <b></b> on line <b>6</b><br />\n<br />\n<b>Warning</b>: Cannot modify header information - headers already sent in <b></b> on line <b>4272</b><br />\n<br />\n<b>Warning</b>: Cannot modify header information - headers already sent in <b>C:\\Wamp64\\www\\teek_api\\lib\\nusoap.php</b> \u001f�\b\0\0\0\0\0\0\v�Uao�0\u0010�+Q>��B�@\vx��2����N��)r�k�j��v�t�\u007f��$\u0014\u0013��\u0012\u0012��\u07bb���1:}Xro\u0005J3)N|ԉ|\u000f\u0004�)\u0013ى\u007f��<\u0018�������[0���gb\u0005\\��m#\rzn6\u001cN��19\u000eCM\u0017�$�cյ$yG�,,\u001f�\u0006\u001e��=\u0013\u001a7Bo�V���\a�nY�����>��(B��ˋ���\v��\u001f\u001c0�\r\u0011\u0014������\u001d��d�\u0019��F�Р.d��5�\\\n\ru\u0002{����#\u0005�P³�`�ɭ��\u0005�������\u000f\u007f\ni>��RbH�\v�Q�&�A\u001d��\u0010�V\u000f\u001f_��,�\u0001]3JT*���\u0003��2� U��(\v����\u001d*�\u000eIAƴ\u0001��\u0002�4q���(\u000e⁇�p\u0017���ar�M�r��1jcx��\u0001i�A\u001e\u001a�8Ʊ�v\u0006\"�s&r\0T\nC��\u0011��|׃�\u000e\u0010�c���:\n�D�=����썩�P���)��k\u0017�v�����۰\v�\u001dٱ\u007f�&�A|T�D�è�S�T��$�k�e�,ښh8\u0018\u0006Q?�])�V��Ei\u000eO�4�FJv�\u000fY)`�,Ak��~+�\u0013�\u0015�Ю�J.U�<{n�)ܑ�\u001bG�鄤Kv0�S#Xu�k̯��%J������\u0015�-��\u001e�\u001b;��]g9�F��^��lj��\u0006��� ���I0<�\u007f\t����x2=\u001b�\u0011\n��f3��մ\u001eհ�_'\u05fc�Ԇ=Jx��>=��j!�G��5g�{�0l����\u0001㙜��\u0006\0\0" 

応答(OK - 有効なXML)

NuSOAPは、ローカルホストのとき

レスポンス私が取得します

"http://schemas.xmlsoap.org/soap/encoding/ \" xmlns:SOAP-ENV = \ "http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd = \ "http://www.w3.org/2001/XMLSchema\ "のxmlns:XSI = \" http://www.w3.org/2001/XMLSchema-instance\ "のxmlns:SOAP-ENC = \" http://schemas.xmlsoap.org/soap/encoding/\ "> のhttp://schemas.xmlsoap.org/soap/envelope/ \"> (...) 」

私も入れません「自動的に取り込むの$ HTTP_RAW_POST_DATAを推奨されていません」と私はすでにに-1の.ini上 always_populate_raw_post_data を変更したと私はそれらを得続けます。

+0

リモートホストのPHPバージョンがローカルホストと同じであることを確認してください。 –

+0

こんにちは。はい、同じバージョン。同じAPI(同じコード)。 1つはMyPCで動作し、1つはリモートサーバで動作します。 –

+1

'php.ini'で' display_errors'を無効にしてみてください。もちろん、これは解決策ではなく、これがあなたの問題であるかどうかを確認するためのテストです。 PHPがこの警告メッセージを送信している可能性があります。これにより、XMLが無効になります。 –

答えて

2

nusoap "invalid xml"と同じ問題があります。私はここで最新のPHP nusoapを使用しています:https://sourceforge.net/projects/nusoapforphp53/これはPHP 5.3用ですが、私のPHPバージョンは5.6を実行しています。 nusoap.phpで使われているphp関数のいくつかは廃止予定です。 thatsはなぜそのエラーを示しているのですか?私がやった

いくつかの簡単な修正されました:

<?php 
error_reporting(0); 
ini_set('display_errors', 1); 

OR「nusoap.phpの中で非推奨となり、その代替と交換、コマンドラインを見つける表示エラーを防ぐために、nusoap.phpの中でこれを入れてください。

関連する問題