我在调用api时遇到此协议违规错误。发生了什么是我的Windows服务正在循环中进行连续的api调用,只要它返回响应代码" OK",那么一切都很好,但是如果它返回除了" OK"下一次调用因协议违规错误而失败。我已经测试过强制api始终返回" OK"我的循环成功完成。我感到困惑的是,为什么下一次通话取决于前一次通话的结果?这是api拒绝它还是只是没有发送?
我的代码如下:
//------------------------------------------------
// For each Transaction, process all detail rows
//------------------------------------------------
foreach (IGrouping<int, SalesTransactionDTO> transactionHeader in transactionHeaderGroup)
{
//Send Request
using (HttpRequestMessage request = new HttpRequestMessage())
{
request.RequestUri = new Uri(myAPiUrl);
request.Method = HttpMethod.Post;
request.Content = new StringContent(jsonContent);
request.Content.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/json");
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Token", accessToken);
HttpResponseMessage response = client.SendAsync(request).Result;
//Check response
if (response.StatusCode != HttpStatusCode.OK)
//log failure;
}
}
我已经阅读了很多SO帖子,并且我得到了相同的3个主要修正:
所有这些似乎都与httpWebRequest有关,我正在使用httpRequestMessage。这是使用httpWebRequest的原因还是httpRequestMessage中的等价物?我曾尝试对这些属性和设置进行一些研究,但我不确定我是否明白他们应该做什么,而且我不想设置一些不应该做的事情。为我的情况设置只是为了尝试修复此错误。是否有理由不使用httpRequestMessage?
任何人都可以启发我吗?