110,539
社区成员
发帖
与我相关
我的任务
分享
//客户端代码
using (var stream = new FileStream(@"e:\\上传测试.pdf", FileMode.Open, FileAccess.Read))
{
using (var client = new HttpClient())
{
using (var multiContent = new MultipartFormDataContent())
{
var bodyContent = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(content), Encoding.UTF8);
bodyContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("body");
stream.Position = 0;
var streamContent = new StreamContent(stream);
streamContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
//上传body
multiContent.Add(bodyContent);
//上传文件流
multiContent.Add(streamContent);
var multiResult = client.PostAsync(url, multiContent).Result;
}
}
}
//服务端代码
[HttpPost]
public HttpResponseMessage Test()
{
var provider = new MultipartMemoryStreamProvider();
Task.Factory.StartNew(() => provider = base.Request.Content.ReadAsMultipartAsync().Result, CancellationToken.None, TaskCreationOptions.LongRunning, TaskScheduler.Default).Wait();
foreach (var item in provider.Contents)
{
//读取body参数
if (item.Headers.ContentDisposition.DispositionType == "body")
{
}
//读取文件流
if (item.Headers.ContentDisposition.DispositionType == "attachment")
{
}
}
return new HttpResponseMessage(System.Net.HttpStatusCode.OK);
}