HttpClient和表单参数名



代码:

using (var client = new HttpClient() { Timeout = TimeSpan.FromSeconds(10) })
{
using (var content = new MultipartFormDataContent())
{
content.Add(new StringContent("abc"), "token");
var response = await client.PostAsync("http://localhost", content);
var result = await response.Content.ReadAsStringAsync();
}
}

生成以下HTTP请求:

POST http://localhost/ HTTP/1.1
Host: localhost
Content-Type: multipart/form-data; boundary="4b39ed14-752b-480a-9846-fc0019132d15"
Content-Length: 174
--4b39ed14-752b-480a-9846-fc0019132d15
Content-Type: text/plain; charset=utf-8
Content-Disposition: form-data; name=token
abc
--4b39ed14-752b-480a-9846-fc0019132d15--

我们有一个客户端说他们的WAF正在阻止请求,因为name参数应该被引用

Content-Disposition: form-data; name="token"

我看到了一些不同的意见:

https://github.com/akka/akka/issues/18788https://github.com/akka/akka-http/issues/386

有人知道这里什么是正确的吗?

我把这个贴在https://github.com/dotnet/runtime/issues/72447

两种形式都是正确的,显然

最新更新