我对此功能的名称感到有点困惑。
为什么它只是TryAdd
?什么是它没有验证?如果我使用这个功能,在某些情况下它仍然可以抛出吗?我可以以某种方式"尝试添加"没有得到任何例外,如果失败则只返回false?
编辑:
我认为这两个问题是相互对立的。如果我使用TryAddWithoutValidation
进行调用,是否会实际添加无效标题,如果它们无效,则只返回false?
答案 0 :(得分:3)
如果密钥为空/空,则HttpHeaders.TryAddWithoutValidation返回false或invalid headers列表中的Add。
ParseAndAddValue方法除了抛出异常而不是返回false之外,还调用方法Brush。在内部,它会为您尝试添加的每个键获取一个解析器,并且只有在解析成功时才接受该值(例如,检查您尝试添加的键是否对该类请求有效)。
答案 1 :(得分:0)
'use strict';
var fileInput = document.getElementById('file');
var preview = document.getElementById('preview');
fileInput.addEventListener('change', function () {
if (this.files.length === 0) {
return;
}
preview.src = URL.createObjectURL(this.files[0]);
});
和<input id="file" type="file" accept="image/*" />
<img id="preview" style="display: block; margin: 1em 0; max-width: calc(100% - 2em);" />
不接受HttpRequestMessage
相关标头,按照惯例,您应该将HttpResponseMessage
相关标头添加到Content
。
所以如果你打电话
Content
你会得到一个例外。
但您仍然不想遵循HttpContent
惯例,在您代理某些请求时可能需要这样做。然后你可以打电话。
response.Headers.Add("Content-Type", ...);
response.Headers.Add("Content-Length",...);
这将添加标题,它将发送/接收标题而不进行验证。