1

これは非常に単純かもしれませんが、WCF レスト サービスでクエリ文字列値を読み取る方法が見つかりません。私は次のことを試しましたが、喜びはありません

HttpContext.Current.Request.QueryString["name"]
4

1 に答える 1

1

このようなものがうまくいくはずです。UriTemplate を使用する必要があります。以下はWCFサービスです

【サービス契約】
  インターフェイス IPing
  {
    【運営契約】
    [WebInvoke(Method="POST", UriTemplate="stuff?n={名前}&q={数量}")]
    void AddStuff(文字列名、文字列量、ストリームデータ);
  }

  クラス PingService : IPing
  {
    public void AddStuff(文字列名、文字列量、ストリームデータ)
    {
      Console.WriteLine("{0} : {1}", 名前, 数量);
      Console.WriteLine("データ ...");
      使用 (StreamReader sr = 新しい StreamReader(データ))
      {
        Console.WriteLine(sr.ReadToEnd());
      }
    }
  }

そして、クライアント

static void Main(string[] args)
    {
      WebRequest req = WebRequest.Create("http://localhost:9000/ping/stuff?n=rich&q=20");
      req.Method = "POST";
      req.ContentType = "text/html";
      using (StreamWriter sw = new StreamWriter(req.GetRequestStream()))
      {
        sw.WriteLine("こんにちは");
      }

      req.GetResponse();
    }
于 2013-06-14T13:53:30.483 に答える