我有以下代码:
private static string boundary = "----CustomBoundary" + DateTime.Now.Ticks.ToString("x"); private static async Task<string> Posttest() { string servResp = ""; using (var content = new MultipartFormDataContent(boundary)) { content.Add(new StringContent("105212"),"case-id"); content.Add(new StringContent("1/14/2014"),"dateFrom"); content.Add(new StringContent("1/15/2014"),"dateto"); httpclienthandler handler = new httpclienthandler(); cookieContainer = new CookieContainer(); handler.CookieContainer = cookieContainer; HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post,"http://somewebsite.com/form"); request.Headers.ExpectContinue = false; request.Content = content; httpClient = new HttpClient(handler); HttpResponseMessage response = await httpClient.SendAsync(request); response.EnsureSuccessstatusCode(); servResp = await response.Content.ReadAsstringAsync(); } return servResp; }
当我运行它,我看到在fiddler的Content-Type标题:
Content-Type: multipart/form-data; boundary="----CustomBoundary8d0f01e6b3b5daf"
因为边界值是引号,服务器将忽略请求体.如果我删除引号并在fiddler Composer中运行请求,则请求被正确处理.
//request.Content.Headers.Add("Content-Type","multipart/form-data; boundary=" + boundary); //request.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("multipart/form-data; boundary=" + boundary);
…但它没有工作,错误消息是:“无法添加值,因为标题”Content-Type“不支持多个值.和“格式的值”multipart / form-data,boundary = —- CustomBoundary8d0f024297b32d5“无效”,相应地.
如何在请求中添加适当的Content-Type标题,以便边界值不会用引号括起来?
Content-Type: multipart/form-data; boundary=----CustomBoundary8d0f01e6b3b5daf
解决方法
原文地址:https://www.jb51.cc/csharp/96940.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。