1

私は C# Restful サービスを実装しており、サービスは次の URL で正常に実行されています: htp://port/restfulService.svc/json/?id=SHAKEEL" ブラウザでの結果: Your Requested XML Product is :shakeel I want to useこのサービスはコンソールクライアントの助けを借りて、私は以下を実装しましたが機能しませんでした.IN結果が返さ れました.この動詞タイプのコンテンツボディを送信できません.ありがとう。

static void Main(string[] args)
{
    do
    {
        try
        {
            string uri = "http://port/restfulService.svc/json/id=SHAKEEL";
            HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest;
            req.KeepAlive = false;
            req.ContentLength = 0;
            req.ContentType = "text/xml";
            Stream data = req.GetRequestStream();
            data.Close();

            string result;
            using (WebResponse resp = req.GetResponse())
            {
                using (StreamReader reader = new StreamReader(resp.GetResponseStream()))
                {
                    result = reader.ReadToEnd();
                }
            }
            result = result.Substring(1, result.Length - 2);
            Console.WriteLine(result);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message.ToString());
        }
        Console.WriteLine();
        Console.WriteLine("Do you want to continue?");
    } while (Console.ReadLine() == "Y");
}
4

1 に答える 1

2

HTTP GET リクエストは本文を送信できないため、次の行を削除する必要があります。

req.ContentLength = 0;
req.ContentType = "text/xml";
Stream data = req.GetRequestStream();
data.Close();

さらに、System.Net.WebClientは、Web サーバーとの基本的なやり取りのためのはるかに単純なインターフェイスを提供します。Web リクエストから文字列を取得するのは次のように簡単です。

using (WebClient client = new WebClient()) { 
    string result = client.DownloadString("http://port/restfulService.svc/json/id=SHAKEEL");
}
于 2013-09-12T11:46:44.483 に答える