web-dev-qa-db-ja.com

HttpRequest.Content.IsMimeMultipartContent()は、trueを返す必要があるときにfalseを返します

HTTPリクエストをMultiPartFormDataとしてRESTコントローラーに送信する必要があります。これは機能していましたが、コントローラーで確認したところ、リクエストが正しいタイプではないと主張されています。デバッガーでリクエストが正しいタイプであることがわかるとき。参考のために:

enter image description here

これを呼び出しているコンソールアプリのコードは次のとおりです。

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ではないと解釈されている可能性はありますか?リクエストの「using MultiPartFormDataContent」に注意してください

10
Matt

MultiPartFormDataContentの場合、nameおよびfilename引数を取るcontent.Addオーバーロードの使用を試みることができます。 MSDN MultipartFormDataContent.Addメソッド(HttpContent、String、String)

6
Muraad Nofal