{"id":589,"date":"2022-11-29T13:11:10","date_gmt":"2022-11-29T04:11:10","guid":{"rendered":"https:\/\/sumomo.ohwaki.jp\/wordpress\/?p=589"},"modified":"2023-09-08T11:53:20","modified_gmt":"2023-09-08T02:53:20","slug":"%e5%8b%98%e9%81%95%e3%81%84multipartformdatacontentwebapi","status":"publish","type":"post","link":"https:\/\/sumomo.ohwaki.jp\/wordpress\/?p=589","title":{"rendered":"\u52d8\u9055\u3044(MultipartFormDataContent+WebAPI)"},"content":{"rendered":"\n<p>\u30e1\u30fc\u30eb\u9001\u4fe1\u3092\u884c\u306a\u3046\u3001WebAPI\u3092\u4f5c\u6210\u3057\u3088\u3046\u3068\u3057\u3066\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u8003\u3048\u305f\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism undefined-numbers lang-csharp\" data-file=\"API I\/F\" data-lang=\"C#\"><code>[HttpPost]\npublic async Task&lt;SendMailStatus&gt; PostAsync(\n    [FromForm]string? FromAddress,\t\t\/\/ \u9001\u4fe1\u8005\u30a2\u30c9\u30ec\u30b9\n    [FromForm]string? Password,\t\t\t\/\/ (\u6697\u53f7\u5316\u3055\u308c\u305f)\u30d1\u30b9\u30ef\u30fc\u30c9\n    [FromForm]string[]? ToAddresses,\t\/\/ \u9001\u4fe1\u5148(\u8907\u6570\u6307\u5b9a\u53ef)\n    [FromForm]string[]? CcAddresses,\t\/\/ Cc(\u8907\u6570\u6307\u5b9a\u53ef)\n    [FromForm]string[]? BccAddresses,\t\/\/ Bcc(\u8907\u6570\u6307\u5b9a\u53ef)\n    [FromForm]string? Subject,\t\t\t\/\/ \u4ef6\u540d\n    [FromForm]string? Message,\t\t\t\/\/ \u672c\u6587\n    [FromForm]IFormFile[]? Attachments\t\/\/ \u6dfb\u4ed8\u30d5\u30a1\u30a4\u30eb(\u8907\u6570\u6307\u5b9a\u53ef)\n) {\n\t\u30fb\u30fb\u30fb<\/code><\/pre><\/div>\n\n\n\n<p>\u6dfb\u4ed8\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308b\u306e\u3067\u3001\u5f53\u7136\u3001multipart\/form-data\u3068\u3057\u3066\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304b\u3089\u30c7\u30fc\u30bf\u3092POST\u3057\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044\u306e\u3060\u304c\u3001\u3053\u306e\u4f5c\u6210\u65b9\u6cd5\u306b\u5f15\u3063\u304b\u304b\u3063\u3066\u3057\u307e\u3063\u305f\u306e\u3067\u3042\u3063\u305f\u3002<\/p>\n\n\n\n<p>MultipartFormDataContent\u69cb\u9020\u4f53\u3092\u4f7f\u7528\u3059\u308b\u306e\u306f\u5206\u304b\u3063\u3066\u304a\u308a\u3001\u3053\u308c\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u8ffd\u52a0\u3059\u308b\u306b\u306fBinaryContent\u69cb\u9020\u4f53\u3092\u4f7f\u7528\u3059\u308c\u3070\u826f\u3044\u3053\u3068\u3082\u5206\u304b\u3063\u3066\u3044\u305f\u306e\u3060\u304c\u3001\u305d\u308c\u4ee5\u5916\u306eForm\u30c7\u30fc\u30bf\u3092\u300cForm\u30c7\u30fc\u30bf\u3060\u304b\u3089\u3001FormUrlEncodedContent\u69cb\u9020\u4f53\u3092\u4f5c\u3063\u3066\u3001\u305d\u308c\u3092\u8ffd\u52a0\u3059\u308c\u3070\u3044\u3044\u3093\u3058\u3083\u7121\u3044\u304b?\u300d\u3068\u52dd\u624b\u306b\u601d\u3044\u8fbc\u3093\u3067\u3001\u8272\u3005\u8a66\u3057\u305f\u304c\u3001\u30d5\u30a1\u30a4\u30eb(\u30b3\u30fc\u30c9\u4e0a\u306fAttachments)\u306f\u53d6\u308c\u308b\u306e\u3060\u304c\u3001\u4ed6\u306e\u5f15\u6570\u306f\u3046\u307e\u304f\u30c7\u30fc\u30bf\u304c\u3068\u308c\u305a\u3001\u300c\u4f55\u3058\u3083\u3053\u308c\u306f?\u300d\u3068\u306a\u3063\u305f\u30fb\u30fb\u30fb<\/p>\n\n\n\n<p>\u8272\u3005\u8abf\u3079\u3066\u3001\u7d50\u5c40FormUrlEncodedContent\u3067\u307e\u3068\u3081\u3066\u5165\u308c\u308b\u306e\u3067\u306f\u7121\u304f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u500b\u3005\u306e\u30d1\u30e9\u30e1\u30fc\u30bf(key=\u5024)\u3092StringContent\u3068\u3057\u3066\u5225\u3005\u306b\u8ffd\u52a0\u3057\u306a\u3051\u308c\u3070\u3044\u3051\u306a\u3044\u3053\u3068\u304c\u5206\u304b\u3063\u305f\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism undefined-numbers lang-csharp\" data-file=\"\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u5074\" data-lang=\"C#\"><code>\/\/ \u30de\u30eb\u30c1\u30d1\u30fc\u30c8Mime\nMultipartFormDataContent MimeData = new MultipartFormDataContent();\n\n\/\/ \u9001\u4fe1\u5143\nStringContent ctx = new(FromAddress);\nMimeData.Add(ctx,&quot;FromAddress&quot;);\n\n\/\/ \u30d1\u30b9\u30ef\u30fc\u30c9\nstring encPwd = EncryptPassword(Password));\nctx = new(encPwd);\nMimeData.Add(ctx,&quot;Password&quot;);\n\n\/\/ \u5b9b\u5148\nforeach(string s in ToAddresses) {\n    if (s != null) {\n        ctx = new(s);\n        MimeData.Add(ctx,&quot;ToAddresses&quot;);\n    }\n}\n\t\u30fb\u30fb\u30fb\n\/\/ \u6dfb\u4ed8\u30d5\u30a1\u30a4\u30eb\nforeach(var a in Attachments) {\n    MemoryStream stm = new MemoryStream();\n    await a.CopyToAsync(stm);\n    await stm.FlushAsync();\n    byte[] buf = stm.ToArray();\n    ByteArrayContent c = new ByteArrayContent(buf);\n    MimeData.Add(c,&quot;Attachments&quot;,a.FileName);\n}\nawait cli.PostAsync(&quot;\u30fb\u30fb\u30fb&quot;,MimeData);<\/code><\/pre><\/div>\n\n\n\n<p>\u307e\u3063\u305f\u304f\u3001\u57fa\u790e\u304c\u306a\u3063\u3066\u304a\u308a\u307e\u305b\u306c\u306a\u30fb\u30fb\u30fb<\/p>\n\n\n\n<p>\u7121\u99c4\u306a\u6642\u9593\u3092\u4f7f\u3063\u3066\u3057\u307e\u3063\u305f\u30fb\u30fb\u30fb<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30e1\u30fc\u30eb\u9001\u4fe1\u3092\u884c\u306a\u3046\u3001WebAPI\u3092\u4f5c\u6210\u3057\u3088\u3046\u3068\u3057\u3066\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9 &hellip; <a href=\"https:\/\/sumomo.ohwaki.jp\/wordpress\/?p=589\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18,12,9,23,4],"tags":[],"class_list":["post-589","post","type-post","status-publish","format-standard","hentry","category-net","category-asp-net-core","category-c","category-web","category-4"],"_links":{"self":[{"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/589","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=589"}],"version-history":[{"count":10,"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/589\/revisions"}],"predecessor-version":[{"id":752,"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/589\/revisions\/752"}],"wp:attachment":[{"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=589"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=589"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sumomo.ohwaki.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}