Сервер совершил нарушение протокола.Раздел = ResponseHeader Detail = CR должен сопровождаться LF в проекте C # Web API - PullRequest
0 голосов
/ 20 мая 2018

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

Я также пытался использовать 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;
}
...