0

サードパーティによって開発されたSOAPインターフェイスを使用していますが、以下に示すように無効なHTTPヘッダーを返しています。

HTTP/1.0 200 OK  
Server: SMBDK_1/2.3.0  
Date: Thu, 09 Aug 2012 18:59:14 GMT  
Connection: close  
Content-Length: 670  
Content-Type: text/html; charset=ISO-8859-1  
Content-Type: text/xml  
Expires: Thu, 09 Aug 2012 18:59:14 GMT  
Last-Modified: Thu, 09 Aug 2012 18:59:14 GMT 

2つのコンテンツタイプタグがあることに注意してください。このVBプロジェクトにはVS2008を使用しています。この接続のサービス参照があり、要求を送信して応答を受信できます。の応答を読み取るためにMSDNサンプルを使用してCustomTextMessageEncoderを作成しましたtext/html; charset=ISO-8859-1。これは単一変数の戻りに対して機能しますが、配列が正しく読み込まれることはありません。それらは常に空です。Webデバッグプロキシを使用していて、配列情報がSOAP応答に含まれていることを確認できますが、実際に取得されることはありません。これはヘッダー(?)が悪いためだと思います。メッセージをとしてデコードしようtext/xml; charset=ISO-8859-1としましたが、同じ結果が得られました...空の配列が返されます。

この状況に対処する方法について誰かアドバイスはありますか?このメッセージを手動で逆シリアル化する必要がありますか、それともより良い方法がありますか?

4

1 に答える 1

0

結局、これらの悪いヘッダーは、VisualStudioが配列を正しく読み取ることを妨げていました。
応答全体をメモリ内のXMlドキュメントにキャプチャしてから開き、xmlNodeListを使用して配列からデータを手動で読み取る必要がありました。

于 2013-07-03T13:10:47.120 に答える