Я использую С# 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;
}