c# - 服务器违反了协议。Section=ResponseHeader Detail=CR 后面必须跟 C# Web API 项目中的 LF
问题描述
我正在使用 C# HttpClient 调用 GET Web 服务。但是,我遇到了这个InnerException :服务器违反了协议。Section=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;
}
解决方案
推荐阅读
- javascript - 在 JS 对象内设置多个属性
- css - 浏览器缩放时自动调整单选按钮大小
- java - 日历错误的Outlook时间
- sql - 如何将 Sql 行数据传递给 Vue 文件(Laravel 项目)
- ios - 如何从 PDF 矢量资产中获取调整大小的图像?
- python - 为什么我没有在日期时间列表上使用 numpy.searchsorted over bisect.bisect_left 获得更好的性能?
- javascript - 你如何设置一个对象出现在屏幕上的随机概率javascript(用于游戏)
- javascript - JS 插件无法识别动态添加的元素
- firebase - 如何使用云函数中的 response.sendFile 从云存储发送文件?
- r - 四分位数之和