Хобрук: Ваш путь к мастерству в программировании

Сервер совершил нарушение протокола. Section=ResponseHeader Detail=CR должен сопровождаться LF в проекте C# Web API

Я использую С# HttpClient для вызова веб-службы GET. Однако я столкнулся с этим InnerException: сервер совершил нарушение протокола. За Section=ResponseHeader Detail=CR должен следовать LF.

Я также пытался использовать WebClient, но у него была такая же проблема. Решение для установки useUnsafeHeaderParsing не подходит для меня.

Я использовал Fiddler для отладки, он показывает код состояния 200 с возвращенными данными. Я считаю, что проблема не в запросе, а в методе GetAsync.

Я не могу добиться дальнейшего прогресса в ее решении. Любая помощь будет высоко ценится.

using (HttpClient client = new HttpClient())
{
       var builder = new UriBuilder("http://url/abc/xyz?..");
       builder.Port = -1;
       var query = HttpUtility.ParseQueryString(builder.Query);
       query["param_1_key"] = "param_1";
       query["param_2_key"] = "param_2";
       query["param3_key"] = "param_3_value";
       builder.Query = query.ToString();
       string url = builder.ToString();

       client.BaseAddress = new Uri(url);
       client.DefaultRequestHeaders.Clear();
       client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));


       var byteArray = Encoding.ASCII.GetBytes("username" + ":" + "password");
       var str = Convert.ToBase64String(byteArray);
       client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));

       response = client.GetAsync(builder.Uri.AbsoluteUri).Result;
}

  • Таким образом, сервер, на который вы звоните, возвращает неверные данные, но предоставленное смягчение «не подходит для вас». Какое решение вы ожидаете найти? 20.05.2018
  • Скрипач и почтальон получают одни и те же данные, я не вижу ничего плохого в данных, если я не пропускаю какие-либо скрытые символы. трассировка стека указывает на класс Task. Есть ли способ просмотреть возвращаемые данные до того, как класс задач выполнит обработку? 20.05.2018
  • Вы избегаете useUnsafeHeaderParsing, потому что он влияет на все веб-запросы, а не только на отдельный, который вы делаете? Если вы хотите стать действительно хакером, вы должны иметь возможность сделать запрос HttpGet с помощью TcpClient. Это не будет весело, но вы получите более детальный контроль над тем, как он обрабатывает такие вещи. 20.05.2018
  • Да, это правильно 20.05.2018
  • Возможный дубликат stackoverflow.com/questions/8424144 / 22.05.2018

Новые материалы

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..