2017-02-03 4 views
-1

ich die POST-Anfrage Ich brauche abgefangen haben zu simulieren, wieTranslating HTTP POST Körper C# request

_method = POST & Daten% 5BListing% 5D% 5Blisting_category_id% 5D = 2 & Daten% 5BListing% 5D% 5Blisting_subcategory_id % 5D = 211

Wie sende ich dies in C# mit HTTPClient? Ich habe das folgende Beispiel gefunden, aber dies passiert ein Wörterbuch. Was brauche ich, um die obige Anforderung zu simulieren zu konstruieren, wie es mir nicht klar ist

using (var client = new HttpClient()) 
     { 
      client.BaseAddress = new Uri("http://localhost:6740"); 
      var content = new FormUrlEncodedContent(new[] 
      { 
       new KeyValuePair<string, string>("", "login") 
      }); 
      var result = await client.PostAsync("/api/Membership/exists", content); 
      string resultContent = await result.Content.ReadAsStringAsync(); 
      Console.WriteLine(resultContent); 
     } 
+0

Ich nehme an, Ihr Zweck ist das Ergebnis zu bekommen, also schlage ich vor, Sie verwenden die 'HttpWebRequest'. –

Antwort

1

Ich denke HttpWebRequest in Ihrem Fall einfacher ist.

string Url = "http://localhost:6740"; 
HttpWebRequest request = HttpWebRequest.Create(Url) as HttpWebRequest; 
string result = null; 

//POST method here. 
request.Method = "post"; 
request.ContentType = "application/x-www-form-urlencoded"; 

//Parameters here. 
string param = "para1=data1&para2=data2"; 

//Maybe you need unicode or other encoding... 
byte[] bs = Encoding.ASCII.GetBytes(param); 

using (Stream reqStream = request.GetRequestStream()) 
{ 
    reqStream.Write(bs, 0, bs.Length); 
} 

using (WebResponse response = request.GetResponse()) 
{ 
    StreamReader sr = new StreamReader(response.GetResponseStream()); 
    result = sr.ReadToEnd(); 
    sr.Close(); 
} 

PS. Dieser Beispielcode wird von einer chinesischen Website kopiert.

+0

Danke, weißt du, wie ich die POST-Zeichenfolge oben in Params übersetze? Habe ich recht, wenn ich denke, dass es "[Listing] [listing_category_id]" als Schlüssel param 1 mit dem Wert 2 und "[Listing] [listing_subcategory_id]" als Schlüssel param 2 mit dem Wert 211 ist? – NZJames

+0

@NZJames Das stimmt. Und es gibt eine gute Website https://urldecode.org kann diese für Sie entschlüsseln –