Я пытаюсь сделать довольно простой POST
запрос к .NET WebAPI.Запрос выполняется из функции Azure, в случае, если это имеет значение.
Вот код:
public async Task SetBackupRecordAsync(BackupRecord backupRecord)
{
var content = new StringContent(JsonConvert.SerializeObject(backupRecord),
Encoding.UTF8,
"application/json");
var uri = new Uri(_httpClient.BaseAddress, "backup");
HttpResponseMessage result = null;
try
{
result = await _httpClient.PostAsync(uri, content).ConfigureAwait(false);
if (result.StatusCode == HttpStatusCode.Accepted)
{
return;
}
throw new Exception($"Unexpected response: The API responded with {(int) result.StatusCode} ({result.StatusCode}) when setting the backup record.");
}
catch (Exception exception)
{
// ...
}
}
И это содержимое JSON, которое включается:
{"AddedById": 14000, "AddedOnUtc": "2019-06-17T09: 43: 25.9821306Z", "Backup": false, "DeletedById": null, "DeletedOnUtc": null, "Id":" 4c3ef086-3e2a-4964-bdc1-f5e72f525fbd "," LastBackupUtc ": null," Name ":" something "}
Я также пытался установить для каждого свойства ненулевое значениезначение, которое не имеет значения.
В отличие от других вопросов по тому же сообщению об исключении, этот запрос даже не отправляется - как только вызывается _httpClient.PostAsync
, генерируется исключение:
Произошла ошибка при отправке запроса.
Внутреннее исключение говорит
Сервер совершил нарушение протокола.Section = ResponseStatusLine
И трассировка внутреннего стека довольно короткая:
at System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult, TransportContext& context)
at System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar)
Некоторые дополнительные точки:
- Я вижу из Fiddler, что нетзапрос передается по сети, поэтому должно быть - как говорит исключение верхнего уровня - что-то о самом запросе, который препятствует его отправке.
- Если я пытаюсь использовать тот же метод API от Почтальона, используя точно такой же контент JSON, тогда он работает.
- Я смог успешно выполнить
GET
запросов к тому же API из той же функции Azure.
Так что жене так с этим запросом?