Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
runtime
提交
69f60b31
R
runtime
项目概览
dotNET Platform
/
runtime
12 个月 前同步成功
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
runtime
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
69f60b31
编写于
3月 29, 2022
作者:
M
Miha Zupan
提交者:
GitHub
3月 29, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Preserve parsed & raw header value ordering (#67227)
上级
a7c5546f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
23 addition
and
6 deletion
+23
-6
src/libraries/System.Net.Http/src/System/Net/Http/Headers/HttpHeaders.cs
...ystem.Net.Http/src/System/Net/Http/Headers/HttpHeaders.cs
+3
-5
src/libraries/System.Net.Http/tests/UnitTests/Headers/HttpHeadersTest.cs
...ystem.Net.Http/tests/UnitTests/Headers/HttpHeadersTest.cs
+20
-1
未找到文件。
src/libraries/System.Net.Http/src/System/Net/Http/Headers/HttpHeaders.cs
浏览文件 @
69f60b31
...
...
@@ -1162,8 +1162,8 @@ internal static void GetStoreValuesAsStringOrStringArray(HeaderDescriptor descri
}
int
currentIndex
=
0
;
ReadStoreValues
<
string
?>(
values
,
info
.
RawValue
,
null
,
ref
currentIndex
);
ReadStoreValues
<
object
?>(
values
,
info
.
ParsedAndInvalidValues
,
descriptor
.
Parser
,
ref
currentIndex
);
ReadStoreValues
<
string
?>(
values
,
info
.
RawValue
,
null
,
ref
currentIndex
);
Debug
.
Assert
(
currentIndex
==
length
);
}
...
...
@@ -1196,8 +1196,8 @@ internal static int GetStoreValuesIntoStringArray(HeaderDescriptor descriptor, o
}
int
currentIndex
=
0
;
ReadStoreValues
<
string
?>(
values
,
info
.
RawValue
,
null
,
ref
currentIndex
);
ReadStoreValues
<
object
?>(
values
,
info
.
ParsedAndInvalidValues
,
descriptor
.
Parser
,
ref
currentIndex
);
ReadStoreValues
<
string
?>(
values
,
info
.
RawValue
,
null
,
ref
currentIndex
);
Debug
.
Assert
(
currentIndex
==
length
);
}
...
...
@@ -1208,9 +1208,7 @@ private static int GetValueCount(HeaderStoreItemInfo info)
{
Debug
.
Assert
(
info
!=
null
);
int
valueCount
=
Count
<
string
>(
info
.
RawValue
);
valueCount
+=
Count
<
object
>(
info
.
ParsedAndInvalidValues
);
return
valueCount
;
return
Count
<
object
>(
info
.
ParsedAndInvalidValues
)
+
Count
<
string
>(
info
.
RawValue
);
static
int
Count
<
T
>(
object
?
valueStore
)
=>
valueStore
is
null
?
0
:
...
...
src/libraries/System.Net.Http/tests/UnitTests/Headers/HttpHeadersTest.cs
浏览文件 @
69f60b31
...
...
@@ -51,6 +51,25 @@ public void TryAddWithoutValidation_ValidAndInvalidValues_InsertionOrderIsPreser
Assert
.
Equal
(
new
[]
{
"text/bar"
,
"invalid"
,
"text/baz"
},
accept
);
}
[
Fact
]
public
void
MixedAddAndTryAddWithoutValidation_ParsedAndRawValues_InsertionOrderIsPreserved
()
{
HttpHeaders
headers
=
new
HttpRequestMessage
().
Headers
;
headers
.
Add
(
"Accept"
,
"text/foo"
);
headers
.
TryAddWithoutValidation
(
"Accept"
,
"text/bar"
);
headers
.
TryAddWithoutValidation
(
"Accept"
,
"invalid"
);
var
expectedValues
=
new
string
[]
{
"text/foo"
,
"text/bar"
,
"invalid"
};
Assert
.
Equal
(
expectedValues
,
headers
.
NonValidated
[
"Accept"
]);
Assert
.
True
(
headers
.
TryGetValues
(
"Accept"
,
out
IEnumerable
<
string
>?
values
));
Assert
.
Equal
(
expectedValues
,
values
);
Assert
.
Equal
(
expectedValues
,
headers
.
NonValidated
[
"Accept"
]);
}
[
Theory
]
[
InlineData
(
null
)]
[
InlineData
(
""
)]
...
...
@@ -1431,7 +1450,7 @@ public void NonValidated_SetValidAndInvalidHeaderValues_AllHeaderValuesReturned(
headers
.
TryAddWithoutValidation
(
headers
.
Descriptor
,
"value2,value3"
);
headers
.
TryAddWithoutValidation
(
headers
.
Descriptor
,
invalidHeaderValue
);
string
expectedValue
=
"value2,value3---"
+
invalidHeaderValue
+
"---"
+
parsedPrefix
+
"1
"
;
string
expectedValue
=
$"
{
parsedPrefix
}
1---value2,value3---
{
invalidHeaderValue
}
"
;
Assert
.
Equal
(
1
,
headers
.
NonValidated
.
Count
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录