Sto cercando di passare un oggetto Dictionary<string,string>
come parametro al mio metodo web API ma se controllo il file di registro viene sempre con un conteggio di 0:Passa un parametro <string, string> nel web
metodo API Web:
[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, che chiama l'API web:
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;
}
ho cambiato il mio metodo da usare PostAsJsonAsync ma è ancora dicendo il conteggio del dizionario nel file di registro è 0. Dovrei cambiare anche il modo in cui sto passando attraverso il contenuto nel mio esempio? –
@DenisWessels Hai usato il codice che ho postato? O hai modificato il tuo? –
Scusa se sono stupido, ho letto correttamente la tua spiegazione e ho cambiato la mia logica per usare PostAsJsonAsync e passare direttamente il dizionario senza creare FormUrlEncodedContent.Ora funziona! –