У меня возникли проблемы с этим, я не думаю, что это должно быть что-то, что я делаю неправильно. Я должен был переписать, чтобы заставить его работать, но он пахнет не так, но это работает.WebApi - PostAsync
Так это то, что я пытался первым, и он не работает, так как вернули StatusCode 500, но это потому, что он не ждет ответа, мне это нужно ждать
[HttpPost]
public async Task<JsonResult> Booking(string model)
{
//do some bits.
var a = new JavaScriptSerializer().Serialize(e);
var booking = new HttpClient();
HttpContent content = new StringContent(a,Encoding.UTF8);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage response = await booking.PostAsync("https://webapi.domain.com/Booking/Post", content);
var aa = response.StatusCode //500 Internal Error
}
Так Я переписал
[HttpPost]
public async Task<JsonResult> Booking(string model)
{
//do some bits.
var a = new JavaScriptSerializer().Serialize(e);
var booking = new HttpClient();
HttpContent content = new StringContent(a,Encoding.UTF8);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage response = await booking.PostAsync("https://webapi.domain.com/Booking/Post", content);
var t = new Stopwatch();
while (response.StatusCode ==HttpStatusCode.InternalServerError)
{
t.Start();
var zzzz = response.ReasonPhrase;
if (t.ElapsedMilliseconds >10000)
{
response.StatusCode = HttpStatusCode.RequestTimeout;
t.Stop();
}
}
var aa = response.StatusCode //201 Created
}
и это работает, и возвращает мне мой 201, некрасиво, но может кто-нибудь сказать мне и показать мне, что я делаю неправильно?
Пожалуйста, отформатируйте код! –
Что такое 'booking.PostAsync'? Почему бы вам прямо не пойти туда? –
Мне кажется маловероятным, что вторая часть кода работает, когда первая не работает. Ты уверен? Код состояния ответа не изменяется через некоторое время. Протокол HTTP не имеет возможности «обновлять» ответ, который был отправлен. Все эти моменты времени ничего не делают. – usr