使用 System.Net.Http.Httpclient,我正在尝试使用 C# 和 wp8 进行多部分发布。
这是我的代码片段:
varclient = new HttpClient();
client.DefaultRequestHeaders.TryAddWithoutValidation(
"Content-Type", "application/json");
content = new MultipartFormDataContent();
content.Add(new StringContent(requestObj, Encoding.UTF8, "application/json"), "request");
但是使用 Fiddler,我注意到我正在发送这个:
内容配置:表单数据;名称=请求
内容类型:文本/纯文本; charset=utf-8
当我需要发送这个时(取自正在通话的安卓设备):
内容配置:application/json; name="请求"
内容类型:文本/纯文本; charset=UTF-8
- 如何达到预期效果?
最佳答案
关于:
使用 TryAddWithoutValidation 在 HttpContent 上设置标题
并将 MultipartFormDataContent 更改为 MultipartContent 对象:
var content = new MultipartContent();
var contentData = new StringContent(requestObj, Encoding.UTF8, "application/json");
contentData.Headers.TryAddWithoutValidation("Content-Disposition", "application/json name=request");
content.Add(contentData);
这导致这些 header
POST http://www.directupload.net/index.php?mode=upload HTTP/1.1
Content-Type: multipart/mixed; boundary="6905763f-e85a-44f9-b7f4-8967b357addf"
Host: www.directupload.net
Content-Length: 274
Expect: 100-continue
Connection: Keep-Alive
--6905763f-e85a-44f9-b7f4-8967b357addf
Content-Type: application/json; charset=utf-8
Content-Disposition: application/json name=request
{ "id": 1, "name": "A green door", "price": 12.50, "tags": ["home", "green"]}
--6905763f-e85a-44f9-b7f4-8967b357addf--
关于c# - httpclient - 如何在多部分中将 Content-Disposition 设置为 "application/json;",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29148292/