我正在尝试使POST请求生效。我正在使用Windows Form和WebClient类来使用我创建的REST Web API。 Windows窗体会将对象列表传输到Rest Web API。
我的WinApp代码
public static void BacklogListAdd(List<qmtRequest> _data)
{
var wi = System.Security.Principal.WindowsIdentity.GetCurrent();
var wic = wi.Impersonate();
var data = JsonConvert.SerializeObject(_data);
var urlLocal = "http://localhost:56499/request/item/add";
var url = "http://169.10.77.243/spa_solutions/ph18-mdm003-fe/request/item/add";
using (var client = new WebClient { UseDefaultCredentials = true })
{
client.Headers.Add(HttpRequestHeader.ContentType,
"application/json; charset=utf-8");
client.UploadData(
"http://169.10.77.243/spa_solutions/ph18-mdm003-fe/request/item/wee",
"POST",
Encoding.UTF8.GetBytes(data));
}
}
Web API代码
[Authorize]
[HttpPost]
[Route("Item/Wee")]
public IHttpActionResult BacklogAddItem(List<qmtRequest> _RequestList)
{
using (qmtdb)
{
qmtdb.qmtRequests.AddRange(_RequestList);
qmtdb.SaveChanges();
return Ok();
}
}
尽管我已经进行了一些故障排除,但是如果我尝试使用GET而不是POST的话,它将可以正常工作。另一个注意事项是,当我尝试在localhost中使用POST时。
Web配置
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, POST" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Credentials" value="true" />
答案 0 :(得分:0)
405状态码为“方法不允许错误”。 检查您的REST API方法类型和相同的方法类型调用。 希望您会从REST API中获得响应