我正在xamarin(目标:.net标准)环境中尝试使用System.Net.Http.HttpClient
创建Http请求。请求将是周期性的,不会包含太多数据。默认情况下,所有请求都包含User-Agent
和Content-Type
标头,它们是请求正文的4倍。
我不需要Content-Type
,因为服务器仅接受一种内容类型,并且当不存在标头时它假定正确的一种。
我已经尝试删除UserAgent标头,但仍在设置默认标头。
HttpClient.DefaultRequestHeaders.UserAgent.Clear();
我还尝试将Content-Type设置为null,空字符串等:
request.Content = new ByteArrayContent(byteArray);
request.Content.Headers.ContentType = null; //Doesn't work
request.Content.Headers.ContentType = new MediaTypeHeaderValue(null); //Throws exception
request.Content.Headers.ContentType = new MediaTypeHeaderValue(""); //Throws exception
如何创建等待的http请求并完全控制标题?
答案 0 :(得分:1)
经过一天的努力,我发现Xamarin可以使用HttpMessageHandler
的两种不同实现,这是实际发送请求的基础机制:
User-Agent
和Content-Type
。 HttpClient
的行为类似于托管对象,因此我认为这是预期的行为。
在github上发布:https://github.com/xamarin/xamarin-android/issues/2747
来源: