如何为 DeleteAsync 设置标头

10

我试图在HttpClient.DeleteAsync请求中设置自定义头。我尝试使用

httpClient.DefaultRequestHeaders.Add("X-Parse-Application-Id",ParseAppID);

但是出现了这个错误

Misused header name. Make sure request headers are used with HttpRequestMessage, response headers with HttpResponseMessage, and content headers with HttpContent objects.

HttpClient.SendAsync可以发送自定义的请求头

System.Net.Http.HttpRequestMessage.Headers.Add("X-Parse-Application-Id",ParseAppID);

同时HttpClient.PostAsync可以发送它们。

System.Net.Http.StringContent.Headers.Add("X-Parse-Application-Id",ParseAppID);

我该如何使用DeleteAsync来实现这个功能?


我无法重现这个问题。这里的代码(https://gist.github.com/mattwcole/5124b49cd9efec4bd7eb)对我来说没有任何问题。你解决了吗? - Matt Cole
1个回答

4

实例化HttpRequestMessage并使用SendAsync代替:

var request = new HttpRequestMessage(HttpMethod.Delete, requestUri);
request.Headers.Add("X-Parse-Application-Id", ParseAppID);

using (var response = await _calendarClient.SendAsync(request).ConfigureAwait(false))
{
    if (response.StatusCode.Equals(HttpStatusCode.NotFound))
    {
        return;
    }
    response.EnsureSuccessStatusCode();
}

真遗憾,我不能使用httpclient()来做到这一点。 - Macindows
calendarClient 是一个 HttpClient - rianjs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接