Próbuję wyodrębnić niektóre dane z żądania w nowym Asp.Net Web Api. Mam konfiguracji procedury obsługi takiego:Nie można odczytać danych podstawowych z api internetowej POST
public class MyTestHandler : DelegatingHandler
{
protected override System.Threading.Tasks.Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
{
if (request.Content.IsFormData())
{
request.Content.ReadAsStreamAsync().ContinueWith(x => {
var result = "";
using (var sr = new StreamReader(x.Result))
{
result = sr.ReadToEnd();
}
Console.Write(result);
});
}
return base.SendAsync(request, cancellationToken);
}
}
To moja prośba http:
POST http://127.0.0.1/test HTTP/1.1
Connection: Keep-Alive
Content-Length: 29
Content-Type: application/x-www-form-urlencoded
Expect: 100-continue
Host: 127.0.0.1
my_property=my_value
problemem jest to, że nie ważne jak próbuję odczytać informacje z request.Content
to zawsze pusty. Próbowałem
request.Content.ReadAsStreamAsync
request.Content.ReadAsFormDataAsync
request.Content.ReadAs<FormDataCollection>
jak również
[HttpGet,HttpPost]
public string Index([FromBody]string my_property)
{
//my_property == null
return "Test";
}
None czy działa. Nie mogę pobrać danych z ciała. Hostuję w IIS na Windows 7 i używam Fiddlera do przesłania żądania. Co ja robię źle?
Byłoby pomocne wiedzieć, czy niezależny klient podobny do wcftestclient.exe daje podobne wyniki. –
Próbowałem to uruchomić, ale tak się nie stanie, ponieważ jest napisane, że mój punkt końcowy nie ma żadnych metadanych. – Micah
To wygląda niesamowicie dziwnie. Czy jest jakiś powód, dla którego wybierasz tę metodę transferu danych w ramach dostarczonej metodologii [HttpGet] i [HttpPost]? –