405 Ошибка при попытке выполнить POST из приложения Windows Form (класс WebClient) - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь заставить работать 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 enter image description here

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" />

1 Ответ

0 голосов
/ 15 ноября 2018

405 код состояния как метод не разрешен Ошибка.Проверьте ваш тип метода REST API и вызов того же типа метода.Надеюсь, вы получите ответ от вашего REST API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...