MultiPartFormDataContent

MultiPartFormDataContent

我需要将HTTP请求作为MultiPartFormData发送到REST Controller 。它正在工作,但是现在我在 Controller 上进行的检查声称该请求的类型不正确,即使我在调试器中看到该请求的类型正确也是如此。以供引用:

c# - HttpRequest.Content.IsMimeMultipartContent()在应返回true时返回false-LMLPHP

这是正在调用它的控制台应用程序代码:

using System;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;

namespace QuickUploadTestHarness
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var client = new HttpClient())
            using (var content = new MultipartFormDataContent())
            {
                // Make sure to change API address
                client.BaseAddress = new Uri("http://localhost");

                // Add first file content
                var fileContent1 = new ByteArrayContent(File.ReadAllBytes(@"C:\<filepath>\test.txt"));
                fileContent1.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = "testData.txt"
                };

                //Add Second file content
                var fileContent2 = new ByteArrayContent(File.ReadAllBytes(@"C:\<filepath>\test.txt"));
                fileContent2.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = "Sample.txt"
                };

                content.Add(fileContent1);
                content.Add(fileContent2);

                // Make a call to Web API
                var result = client.PostAsync("/secret/endpoint/relevant/bits/here/", content).Result;

                Console.WriteLine(result.StatusCode);
                Console.ReadLine();
            }
        }
    }
}

怎么可能将其解释为不是MultiPartFormData?请注意请求的“,使用MultiPartFormDataContent

最佳答案

对于MultiPartFormDataContent,您可以尝试使用带有content.Addname参数的filename重载。
MSDN MultipartFormDataContent.Add Method (HttpContent, String, String)

10-01 19:01