Ich versuche, ein Dictionary<string,string>
Objekt als Parameter an meine Web-API-Methode zu übergeben, aber wenn ich die Protokolldatei überprüfen, kommt es immer mit einer Zählung von 0:Übergeben Sie einen Dictionary <string, string> -Parameter in Web-API
Web api Methode:
[HttpPost]
[ActionName("SendPost")]
public void SendPost([FromBody] Dictionary<string,string> values)
{
using (var sw = new StreamWriter("F:\\PostTest.txt", true))
{
sw.WriteLine("Number of items in the dictionary - " + values.Count);
}
}
Logik, die die Web-aPI-Aufrufe:
public HttpResponseMessage Send(string uri, string value)
{
HttpResponseMessage responseMessage = null;
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(URI);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new FormUrlEncodedContent
(
new Dictionary<string, string> { { "value", value } }
);
responseMessage = client.PostAsync(uri, content).Result;
}
return responseMessage;
}
ich meine Methode geändert haben PostAsJsonAsync zu verwenden, aber es immer noch sagt Die Wörterbuchanzahl in der Protokolldatei ist 0. Soll ich auch ändern, wie ich den Inhalt in meinem Beispiel durchlasse? –
@DenisWessels Haben Sie den von mir geposteten Code verwendet? Oder hast du deine modifiziert? –
Tut mir leid, ich bin albern, ich habe Ihre Erklärung richtig gelesen und meine Logik geändert, um PostAsJsonAsync zu verwenden und direkt durch das Wörterbuch zu gehen, ohne FormUrlEncodedContent zu erstellen. Jetzt funktioniert es! –