【发布时间】:2020-12-04 08:53:09
【问题描述】:
我有一个较旧的 ASP.NET WebForms 站点。我正在尝试使用 WebClient 向 REST API 发送 PATCH 请求:
using (WebClient client = new WebClient())
{
client.Headers[HttpRequestHeader.Authorization] = "Bearer " + authToken;
try
{
responseString = Encoding.UTF8.GetString(client.UploadValues(endpoint, "PATCH", body));
}
catch (Exception e)
{
return e;
}
}
在这个 sn-p 中,endpoint 是我 PATCH 的 URI,body 是 NameValueCollection。
这给了我一个 HTTP 400“错误请求”错误。如果我深入研究异常,则表明存在协议违规。我尝试为内容类型添加标题,但这没有帮助。
同样的代码确实适用于POST 请求,这就是我成功获取访问令牌的方式。但它不适用于PATCH。有没有办法使用WebClient 发送有效的PATCH 请求?
我知道那里还有其他库,但如果可能的话,我希望在使用WebClient 时与此类中的其余代码保持一致。如果我必须切换到其他东西,我也想更新其余代码。
更新
是的,API 确实支持PATCH。它是 Microsoft Graph API,PATCH 与 Postman 配合得很好。
【问题讨论】:
-
你的 API 支持 PATCH 吗?
-
是的,它是 Microsoft Graph API,并且 PATCH 可以与 Postman 配合使用。
标签: c# asp.net webforms webclient