Проблема с преобразованием asmx WebService в C#

У меня есть C# asmx webservice WP.asmx, строковый метод авторизации (строка PMSRequest)

[ScriptMethod(UseHttpGet = true)]
[WebMethod]
public string Authorisation(string PMSRequest)

который десериализует строку JSON в класс с именем Details

class Details
    {
        public string Number { get; set; }
    }

здесь:

Details obj = JsonConvert.DeserializeObject<Details>(PMSRequest)

и в конечном итоге возвращает строку.

Я пытаюсь вызвать из браузера

https://example.net/WP.asmx/Authorisation?PMSRequest = "{\"Number\":\"5413\"}"

сильный текст но я получаю сообщение об ошибке

Could not cast or convert from System.String to My.Web.MyService.WP+Details

Newtonsoft.Json.JsonSerializationException: Error converting value 
   at Newtonsoft.Json.Utilities.ConvertUtils.EnsureTypeAssignable(Object value, Type initialType, Type targetType)
   at Newtonsoft.Json.Utilities.ConvertUtils.ConvertOrCast(Object initialValue, CultureInfo culture, Type targetType)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
   --- End of inner exception stack trace ---
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)

Он отлично работает, когда у меня есть тот же код, что и в тестовом приложении C# Windows Form

Вы звоните в службу МЫЛО. SOAP работает с POST и XML, а не с GET и JSON. У него есть схема, по которой клиенты могут создавать строго типизированные прокси. Вот что происходит, когда вы добавляете Service Reference. Даже если вы попытаетесь отправить данные в формате JSON, они все равно будут упакованы в XML. Вы не получаете выгоды, но теряете все проверки типов, автоматическую сериализацию, стандартную поддержку и т. д.

Panagiotis Kanavos 09.10.2018 14:17

Возможно, вы добавили [ScriptMethod(UseHttpGet = true)]? Это было предназначено для исходных вызовов AJAX, где X означает XML, в частности XMLHttpRequest.

Panagiotis Kanavos 09.10.2018 14:19

Спасибо Pano. Я добавил его (см. Отредактированный код), но получаю тот же результат :(

PanosPlat 09.10.2018 14:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
37
0

Другие вопросы по теме

Похожие вопросы