2016-05-02 18 views
0

追加されたパラメータを使用してGETを実行しようとしています。私は以前にWebClientコードを使用していましたが、突然停止してしまったので、HttpWebRequest/HttpWebResponseを使用するように切り替えました。パラメータを正しく追加するにはどうしたらいいですか?私は2つの文字列パラメータを取るREST関数を持っていますが、私はそれを見ることができません。基本的に、GET呼び出しに複数のパラメータを追加するにはどうすればよいですか?ここに私のRESTコードさHttpWebResponseを使用するパラメータを使用するHttpGet C#

string webAddress = "http://localhost:5000/stuff/address"; 

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(webAddress); 
request.Headers.Add("bookIds", booksString); 
request.Method = "GET"; 
request.Accept = "text/html"; 
request.KeepAlive = true; 
request.ProtocolVersion = HttpVersion.Version10; 
string text = ""; 
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
{ 
    using (StreamReader reader = new StreamReader(response.GetResponseStream(), 
      Encoding.ASCII)) 
    { 
     text = reader.ReadToEnd(); 
    } 
} 
Console.WriteLine("text: " + text); 

と::私はこのコードを実行するたびに

public List<Book> GetBooks(string bookIds, string param2) 
{ 
    Console.WriteLine("book IDs: " + bookIds + " " + param2); 
} 

bookIdsが空である

はここに私のGETコードです(booksStringは、書籍IDのカンマ区切りの文字列です) ?複数のパラメータを送信し、REST機能でデータを認識させるにはどうすればよいですか?

+0

http:// localhost:5000/stuff/address?bookIds = value&param2 = value – Hakunamatata

+0

のようなURLでリクエストを送信してみてください。プレーンな方法のようです。 –

答えて

0

はURLエンコードを使用してみてください行うことができます。

http://localhost:5000/stuff/address?bookIds= {0} = {1}

使用String.Formatの& PARAM2の値を記入し、電話をかけることができます。

0

RestSharp Nugetパッケージを使用してください。これは、HTTPWebリクエストをきれいにカプセル化しています。

は、その、あなたはこの

var baseUrl = "http://localhost:5000/"; 
var resource = "stuff/address"; 
var api = new RestClient(baseUrl); 
var request = new RestRequest(resource, Method.GET); 
request.AddQueryParameter("bookIds", bookString); 
request.AddQueryParameter("param2", value); 
api.Execute(request); 
関連する問題