0

XML を公開されたサービスに投稿しようとしています。System.Net.WebRequest を使用して必要な情報を投稿しています。Fiddler を使用すると、投稿の結果は次のようになります。

 POST http://x.x.x.x:5010/FindReservationByRoom HTTP/1.1
 Content-Type: text/xml
 Transaction: 1
 Host: x.x.x.x:5010
 Content-Length: 29
 Expect: 100-continue

 <Body><Room>103</Room></Body>

残念ながら、上記は機能していないようです。このサービスと通信するための指示は、最初の行が実際に読む必要があることを示しています:

POST FindReservationByRoom HTTP/1.1

しかし、WebRequest は URI 全体をこの最初の行に追加しているようです。私は HTTP の達人ではないので、ここで何が間違っているのかわかりません。どんな提案でも大歓迎です。

編集: 呼び出しから返されるエラー メッセージは次のとおりです。

 Unknown command verb '<Body><Room>103</Room></Body>POST'

編集:呼び出しを行うために使用しているコードは次のとおりです。

 System.Net.WebRequest req = System.Net.WebRequest.Create("http://x.x.x.x:5010/FindReservationByRoom");
        req.Headers.Clear();

        req.ContentType = "text/xml";
        req.Method = "POST";

        StringBuilder xml = new StringBuilder();
        xml.Append("<Body><Room>103</Room></Body>");

        byte[] bytes = System.Text.Encoding.ASCII.GetBytes(xml.ToString());

        StringBuilder header = new StringBuilder();
        req.Headers.Add("Transaction: 1");

        req.ContentLength = bytes.Length;
        Stream os = req.GetRequestStream();
        os.Write(bytes, 0, bytes.Length);

        System.Net.WebResponse resp = req.GetResponse();
        if (resp != null)
        {
            System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
            string responsecontent = sr.ReadToEnd().Trim();
        }
4

1 に答える 1

0

私が知る限り、ステータス エラー: 不明なコマンド動詞は、既知の http 応答ではありません。
この問題を http リクエストの形式が正しくないかのように扱っていますが、http レイヤーの問題はないように感じます。
到達しようとしているこのサービスのソース コードはありますか、それともサード パーティのコンポーネントですか?
おそらく、サービスがあなたのxmlをスキャンしてコマンド動詞を探しているのでしょう。

于 2012-06-01T11:08:29.017 に答える