Как вызвать веб-метод для принятия POST

#c# #web-services #post

#c# #веб-сервисы #Публикация

Вопрос:

Мне нужно отправить данные в свой серверный сервер через веб-сервис.

Мой веб-метод ;

 [WebMethod]

    public string InsertData(string dData)
    {
        Log.Info(deviceData);
        ....
        string status= serv.InsertData(dData);
        return status;
    }
 

От fiddler если я вызываю с помощью POST verb , это дает

Недопустимый формат запроса

Мое требование

Пожалуйста, дайте мне знать, как это должно быть вызвано через POST.

GET работает нормально.

Ответ №1:

Попробуйте:

 [WebMethod(EnableSession = true)]
 [ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
 public static string Example(string id)
 {
    return "it worked";
 }
 

Из MSDN:

true, если метод вызывается с помощью команды HTTP GET; false, если метод вызывается с помощью команды HTTP POST. Значение по умолчанию равно false.

Значение по умолчанию равно false, так что вы уже должны использовать POST.

О его вызове попробуйте из jquery:

 <script>
        $.ajax({
            type: "POST",
            url: "WebForm1.aspx/Example",
            data: JSON.stringify({
                'theIdToPass'
            }),
            contentType: "application/json; charset=utf-8",
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert("Request: "   XMLHttpRequest.toString()   "nnStatus: "   textStatus   "nnError: "   errorThrown);
            },
            complete: function (jqXHR, status) {
                alert("complete: "   status   "nnResponse: "   jqXHR.responseText);
            }
        });
    </script>