Я пытаюсь заставить работать 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));
}
}
Код веб-API
[Authorize]
[HttpPost]
[Route("Item/Wee")]
public IHttpActionResult BacklogAddItem(List<qmtRequest> _RequestList)
{
using (qmtdb)
{
qmtdb.qmtRequests.AddRange(_RequestList);
qmtdb.SaveChanges();
return Ok();
}
}
Я выполнил поиск и устранение неисправностей.хотя, это работает, если я пытаюсь использовать GET вместо POST.Еще одно замечание: когда я пытаюсь использовать POST в localhost, он работает.
Fiddler
Web Config
<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" />