Почтовый запрос работает в почтальоне Chrome нормально, но в родном почтальоне я продолжаю получать System.NullReferenceException - PullRequest
0 голосов
/ 06 мая 2018

У меня мало c # API Post и Get, вызывающих метод для базы данных MSSQL. Я создал копию базы данных и копию этого API со 2-й строкой подключения - ссылаясь на новую базу данных.

В нативном почтальоне вызовы старых API работают нормально, и я получаю результат 200, но вызовы новых API продолжают возвращать статус 400, а тело ответа начинается с: "System.NullReferenceException" В chrome почтальоне все API (старые и новые) работают нормально.

Похоже, что параметры полезной нагрузки (body x-www-form-urlencoded) не перенаправляются в класс входных данных в нативном почтальоне.

Заголовок запроса: [{ "Ключ": "Content-Type", "значение": "применение / х-WWW-форм-urlencoded", "описание": ""}]

Тело запроса x-www-form-urlencoded:

[{ "ключ": "Entranceref", "значение": "25", "Описание": ""}, { "ключ": "Primaryid", "значение": "1234", "Описание": описание "1.1.1.1", ": ""}, { "ключ": "Secondaryid", "значение": "1234", "описание": ""}, { "ключ": "Loginip", "значение" описание 0 " " ":" "}, {" ключ ":" UserAgent", "значение": "dfgffd", "описание": ""}, { "ключ":: "Регистратор", "значение"" описание 1 " " ":" "}, {" ключ ":" Cookieid", "значение": "rtyu", "описание": ""}, { "ключ":: "Cookiecount", "значение"" ":" "}, {" ключ ":" LanguageID», "значение": "он", "описание": ""}]

Статус - 400 Плохой запрос

Тело ответа:

«ClassName»: «System.NullReferenceException», «Сообщение»: «Ссылка на объект не установлена ​​на экземпляр объекта.», «Данные»: ноль,

Это класс ввода API

      public class MdCheckEvent
     {
      public string Entranceref { get; set; }
        public string Primaryid { get; set; }
        public string Secondaryid { get; set; }
        public string Loginip { get; set; }
        public string Useragent { get; set; }
        public int Registrar { get; set; }
        public string Cookieid { get; set; }
        public int Cookiecount { get; set; }
        public string Languageid { get; set; }
    }
    [HttpPost public HttpResponseMessage PostCheckEnterance([FromBody] MdCheckEvent Inputs)

1 Ответ

0 голосов
/ 06 мая 2018

решена проблема:

Написал параметры с нуля - решил. Был пропущен тип и включены определения для каждого параметра.

Странная вещь, которая действует только в родной версии.

Теперь полезная нагрузка выглядит следующим образом:

[{ "ключ": "Entranceref", "значение": "25", "Описание": "", "тип": "Текст", "включено": истинно}, { "ключ": "Primaryid " "значение": "1234", "описание": "", "тип": "текст", "включено": истинно}, { "ключ": "Secondaryid", "значение": "1234"," описание ":"», "тип": "текст", "включено": истинно}, { "ключ": "Loginip", "значение": "1.1.1.1", "описание": "", "тип" : "текст", "включено": истинно}, { "ключ": "UserAgent", "значение": "1313sdasd", "описание": "", "тип": "текст", "включен": правда} , { "ключ": "Регистратор", "значение": "1", "описание": "", "тип": "текст", "включено": истинно}, { "ключ": "Cookieid",» значение ":" 121ss», "описание": "", "тип": "текст", "включено": истинно}, { "ключ": "Cookiecount", "значение": "1", "описание": "", "типа": "текст", "включено": истинно}, { "ключ": "LanguageID", "значение": "он", "описание": "", "типа": "текст", "включен": истинный}]

...