Próbuję przekazać obiekt Dictionary<string,string>
jako parametr do mojej metody interfejsu API, ale jeśli sprawdzam plik dziennika, zawsze przychodzi z liczbą 0:Przesyłanie parametru Dictionary <string, string> w api WWW
metoda Web API:
[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);
}
}
Logic, która wywołuje API internetowej:
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;
}
Zmieniłem sposób używać PostAsJsonAsync ale to jeszcze mówiąc liczba słów w pliku dziennika wynosi 0. Czy mogę również zmienić sposób, w jaki przechodzę przez treść w moim przykładzie? –
@DenisWessels Czy użyłeś kodu, który napisałem? A może zmodyfikowałeś swoje? –
Przepraszam, że jestem głupi, poprawnie przeczytałem twoje wyjaśnienia i zmieniłem logikę, aby używać PostAsJsonAsync i przechodzę przez słownik bezpośrednio, bez tworzenia FormUrlEncodedContent. Teraz działa! –