使用令牌执行put或patch请求

时间:2015-12-21 16:28:42

标签: c# http httprequest

我有一大堆代码:

HttpClient client = new HttpClient();

client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(String.Format("{0}:{1}", "Username", "password"))));

var method = new HttpMethod("PATCH");

var reqmsg = new HttpRequestMessage(method, uri)
{
    Content = new StringContent(request, Encoding.UTF8, "application/json")
};

HttpResponseMessage response = await client.SendAsync(reqmsg);

使用基本身份验证可以正常工作。我想使用令牌,如果我更改授权使用webtoken:

client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Token", WebToken);

我现在收到403 Forbidden错误。如果我正在做Post或Get,则令牌有效,但不适用于Patch或Put。我猜这个令牌在某种程度上被剥夺了。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:-2)

您收到403错误,因为编码不正确。 -facepalm- 您使用的是UTF8,而默认值是ANCI ......没有意义。