【问题标题】:Getting '405 Method not allowed' when accessing a web API through my ASP.NET web form通过我的 ASP.NET Web 表单访问 Web API 时出现“不允许 405 方法”
【发布时间】:2017-09-26 10:13:16
【问题描述】:

我根据我的 API 提供者的请求使用 JSON 传递我的变量...我附上以下代码:

string url = "http://api-v2.happay.in/auth/v1/adduser";
string token = "fcd853a15a6e97b8834255dde74cd99527";

string dataToUpload = "{"requestedId":"12389","userId":"134474","firstName":"Maredu Laxmi","lastName":"","emailId":"arar@gmail.com","mobileNo":"096518644","dob":"1978-02-26","gender":"Female","title":"Ms","password":"","metaFields":{"EmpId":"12389","Grade":"D6","Location":"Hyderabad"},"supervisors":[{"supervisorId":"1024","roleName":"RP"},{"supervisorId":"1025","roleName":"RP"}]}";

var cli = new WebClient();

cli.Headers[HttpRequestHeader.ContentType] = "application/json";
cli.Headers[HttpRequestHeader.Authorization] = "Bearer " + token;

string response = cli.UploadString(url, "POST", dataToUpload);

我做错了什么?

【问题讨论】:

标签: c# asp.net json


【解决方案1】:

405 Method Not Allowed 表示您尝试调用的端点 (http://api-v2.happay.in/auth/v1/adduser) 不支持您尝试使用的方法 (POST)。

来自RFC 7231, Section 6.5.5

405(Method Not Allowed)状态码表示请求行中接收到的方法是源服务器已知的,但目标资源不支持。

您确定端点支持POST 方法吗?

RFC 还声明

源服务器必须在 405 响应中生成一个 Allow 标头字段,其中包含目标资源当前支持的方法列表。

您可以检查响应,看看它们是否遵循规范并包含Allow 标头。

【讨论】:

  • 我不知道该说什么......这显然是他们的结局。如果他们说“POST这个有效载荷到http://api-v2.happay.in/auth/v1/adduser”,你的代码看起来不错。您应该与他们交谈并确保您所掌握的信息是正确的。
  • 我怀疑这个部分 - cli.Headers[HttpRequestHeader.Authorization] = "Bearer" + token;对吗?
  • 是的,看起来不错。不管它是否有效,我不能说:P
猜你喜欢
  • 2018-02-04
  • 2018-05-27
  • 2013-03-21
  • 1970-01-01
  • 2013-12-25
  • 2021-09-30
  • 2016-03-23
  • 1970-01-01
  • 2012-09-30
相关资源
最近更新 更多