如果我在HttpMessageHandler中有異步調用,它應該使用.ConfigureAwait方法,例如HttpMessageHandler應該使用ConfigureAwait(false)
/// <summary>
/// Handler to assign the MD5 hash value if content is present
/// </summary>
public class RequestContentMd5Handler : DelegatingHandler
{
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
if (request.Content == null)
{
return await base.SendAsync(request, cancellationToken);
}
await request.Content.AssignMd5Hash().ConfigureAwait(false);
var response = await base.SendAsync(request, cancellationToken);
return response;
}
}
感謝理的問題是各地的服務器端代碼中的其他主題應始終使用ConfigureAwait(假) - 我會用ConfigureAwait(真),所以我們不要混淆它 –
怎麼來的?正確的HTTP請求正在作爲參數傳遞。 –