{"id":43,"date":"2010-11-21T21:45:00","date_gmt":"2010-11-21T19:45:00","guid":{"rendered":"http:\/\/dev.bratched.fr\/en\/?p=43"},"modified":"2010-11-21T21:45:00","modified_gmt":"2010-11-21T19:45:00","slug":"uploading-multiple-files-with-c","status":"publish","type":"post","link":"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/","title":{"rendered":"Uploading multiple files with C#"},"content":{"rendered":"<p>Have you ever been in a situation where you needed to upload multiple files to a remote host and pass additional parameters in the request? Unfortunately there\u2019s nothing in the BCL that allows us to achieve this out of the box.<\/p>\n<p>We have the <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/system.net.webclient.uploadfile.aspx\" target=\"_blank\" rel=\"noopener noreferrer\">UploadFile<\/a> method but it is restricted to a single file and doesn\u2019t allow us to pass any additional parameters. So let\u2019s go ahead and write such method. The important part is that this method must comply with <a href=\"http:\/\/www.faqs.org\/rfcs\/rfc1867.html\" target=\"_blank\" rel=\"noopener noreferrer\">RFC 1867<\/a> so that the remote web server can successfully parse the information.<\/p>\n<p>First we define a model representing a single file to be uploaded:<\/p>\n<div id=\"scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:78bcd8da-3282-4afd-91d6-85bdce2c61ae\" class=\"wlWriterSmartContent\" style=\"margin: 0px;padding: 0px;float: none\">\n<pre class=\"lang:default decode:true\">public class UploadFile\n    {\n        public UploadFile()\n        {\n            ContentType = \"application\/octet-stream\";\n        }\n        public string Name { get; set; }\n        public string Filename { get; set; }\n        public string ContentType { get; set; }\n        public Stream Stream { get; set; }\n    }<\/pre>\n<\/div>\n<p><!--more--><\/p>\n<p>And here\u2019s a sample UploadFiles method implementation:<\/p>\n<div id=\"scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:658ffd88-9f06-42c7-a4b4-fd5f34134122\" class=\"wlWriterSmartContent\" style=\"margin: 0px;padding: 0px;float: none\">\n<pre class=\"lang:default decode:true\">public byte[] UploadFiles(string address, IEnumerable&lt;UploadFile&gt; files, NameValueCollection values)\n    {\n        var request = WebRequest.Create(address);\n        request.Method = \"POST\";\n        var boundary = \"---------------------------\" + DateTime.Now.Ticks.ToString(\"x\", NumberFormatInfo.InvariantInfo);\n        request.ContentType = \"multipart\/form-data; boundary=\" + boundary;\n        boundary = \"--\" + boundary;\n\n        using (var requestStream = request.GetRequestStream())\n        {\n            \/\/ Write the values\n            foreach (string name in values.Keys)\n            {\n                var buffer = Encoding.ASCII.GetBytes(boundary + Environment.NewLine);\n                requestStream.Write(buffer, 0, buffer.Length);\n                buffer = Encoding.ASCII.GetBytes(string.Format(\"Content-Disposition: form-data; name=\\\"{0}\\\"{1}{1}\", name, Environment.NewLine));\n                requestStream.Write(buffer, 0, buffer.Length);\n                buffer = Encoding.UTF8.GetBytes(values[name] + Environment.NewLine);\n                requestStream.Write(buffer, 0, buffer.Length);\n            }\n\n            \/\/ Write the files\n            foreach (var file in files)\n            {\n                var buffer = Encoding.ASCII.GetBytes(boundary + Environment.NewLine);\n                requestStream.Write(buffer, 0, buffer.Length);\n                buffer = Encoding.UTF8.GetBytes(string.Format(\"Content-Disposition: form-data; name=\\\"{0}\\\"; filename=\\\"{1}\\\"{2}\", file.Name, file.Filename, Environment.NewLine));\n                requestStream.Write(buffer, 0, buffer.Length);\n                buffer = Encoding.ASCII.GetBytes(string.Format(\"Content-Type: {0}{1}{1}\", file.ContentType, Environment.NewLine));\n                requestStream.Write(buffer, 0, buffer.Length);\n                file.Stream.CopyTo(requestStream);\n                buffer = Encoding.ASCII.GetBytes(Environment.NewLine);\n                requestStream.Write(buffer, 0, buffer.Length);\n            }\n\n            var boundaryBuffer = Encoding.ASCII.GetBytes(boundary + \"--\");\n            requestStream.Write(boundaryBuffer, 0, boundaryBuffer.Length);\n        }\n\n        using (var response = request.GetResponse())\n        using (var responseStream = response.GetResponseStream())\n        using (var stream = new MemoryStream())\n        {\n            responseStream.CopyTo(stream);\n            return stream.ToArray();\n        }\n    }<\/pre>\n<\/div>\n<p>And here\u2019s a sample usage:<\/p>\n<div id=\"scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:43856010-8b13-47e0-af6d-6bf7fc8fe687\" class=\"wlWriterSmartContent\" style=\"margin: 0px;padding: 0px;float: none\">\n<pre class=\"lang:default decode:true\">using (var stream1 = File.Open(\"test.txt\", FileMode.Open))\n    using (var stream2 = File.Open(\"test.xml\", FileMode.Open))\n    using (var stream3 = File.Open(\"test.pdf\", FileMode.Open))\n    {\n        var files = new[] \n        {\n            new UploadFile\n            {\n                Name = \"file\",\n                Filename = \"test.txt\",\n                ContentType = \"text\/plain\",\n                Stream = stream1\n            },\n            new UploadFile\n            {\n                Name = \"file\",\n                Filename = \"test.xml\",\n                ContentType = \"text\/xml\",\n                Stream = stream2\n            },\n            new UploadFile\n            {\n                Name = \"file\",\n                Filename = \"test.pdf\",\n                ContentType = \"application\/pdf\",\n                Stream = stream3\n            }\n        };\n\n        var values = new NameValueCollection\n        {\n            { \"key1\", \"value1\" },\n            { \"key2\", \"value2\" },\n            { \"key3\", \"value3\" },\n        };\n\n        byte[] result = UploadFiles(\"http:\/\/localhost:1234\/upload\", files, values);\n    }<\/pre>\n<\/div>\n<p>In this example we are uploading 3 values and 3 files to the remote host.<\/p>\n<p>Next time I will show how to improve this code by adding an asynchronous version using the TPL library in .NET 4.0.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Have you ever been in a situation where you needed to upload multiple files to a remote host and pass additional parameters in the request? Unfortunately there\u2019s nothing in the BCL that allows us to achieve this out of the box. We have the UploadFile method but it is restricted to a single file and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[263,265],"tags":[275,302,304,305,322],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Bratched\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Bratched.com | Blog speaking .Net C# Javascript, Wordpress\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Uploading multiple files with C# | Bratched.com\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2010-11-21T19:45:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2010-11-21T19:45:00+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Uploading multiple files with C# | Bratched.com\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/2010\\\/11\\\/21\\\/uploading-multiple-files-with-c\\\/#article\",\"name\":\"Uploading multiple files with C# | Bratched.com\",\"headline\":\"Uploading multiple files with C#\",\"author\":{\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/author\\\/adminced\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/#organization\"},\"datePublished\":\"2010-11-21T21:45:00+01:00\",\"dateModified\":\"2010-11-21T21:45:00+01:00\",\"inLanguage\":\"en-US\",\"commentCount\":15,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/2010\\\/11\\\/21\\\/uploading-multiple-files-with-c\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/2010\\\/11\\\/21\\\/uploading-multiple-files-with-c\\\/#webpage\"},\"articleSection\":\".NET, ASP.NET MVC, asp.net mvc, multiple files, mvc, mvc 4.0, uploading\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/2010\\\/11\\\/21\\\/uploading-multiple-files-with-c\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bratched.com\\\/en\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/category\\\/net\\\/#listItem\",\"name\":\".NET\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/category\\\/net\\\/#listItem\",\"position\":2,\"name\":\".NET\",\"item\":\"https:\\\/\\\/bratched.com\\\/en\\\/category\\\/net\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/category\\\/net\\\/mvc\\\/#listItem\",\"name\":\"ASP.NET MVC\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/category\\\/net\\\/mvc\\\/#listItem\",\"position\":3,\"name\":\"ASP.NET MVC\",\"item\":\"https:\\\/\\\/bratched.com\\\/en\\\/category\\\/net\\\/mvc\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/2010\\\/11\\\/21\\\/uploading-multiple-files-with-c\\\/#listItem\",\"name\":\"Uploading multiple files with C#\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/category\\\/net\\\/#listItem\",\"name\":\".NET\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/2010\\\/11\\\/21\\\/uploading-multiple-files-with-c\\\/#listItem\",\"position\":4,\"name\":\"Uploading multiple files with C#\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/category\\\/net\\\/mvc\\\/#listItem\",\"name\":\"ASP.NET MVC\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/#organization\",\"name\":\"Bratched.com\",\"description\":\"Blog speaking .Net C# Javascript, Wordpress\",\"url\":\"https:\\\/\\\/bratched.com\\\/en\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/author\\\/adminced\\\/#author\",\"url\":\"https:\\\/\\\/bratched.com\\\/en\\\/author\\\/adminced\\\/\",\"name\":\"Bratched\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/2010\\\/11\\\/21\\\/uploading-multiple-files-with-c\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/05352dcd40ece2c42e5ae2dd683b460b?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Bratched\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/2010\\\/11\\\/21\\\/uploading-multiple-files-with-c\\\/#webpage\",\"url\":\"https:\\\/\\\/bratched.com\\\/en\\\/2010\\\/11\\\/21\\\/uploading-multiple-files-with-c\\\/\",\"name\":\"Uploading multiple files with C# | Bratched.com\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/2010\\\/11\\\/21\\\/uploading-multiple-files-with-c\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/author\\\/adminced\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/author\\\/adminced\\\/#author\"},\"datePublished\":\"2010-11-21T21:45:00+01:00\",\"dateModified\":\"2010-11-21T21:45:00+01:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/bratched.com\\\/en\\\/\",\"name\":\"Bratched.com\",\"description\":\"Blog speaking .Net C# Javascript, Wordpress\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/bratched.com\\\/en\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Uploading multiple files with C# | Bratched.com","description":"","canonical_url":"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/#article","name":"Uploading multiple files with C# | Bratched.com","headline":"Uploading multiple files with C#","author":{"@id":"https:\/\/bratched.com\/en\/author\/adminced\/#author"},"publisher":{"@id":"https:\/\/bratched.com\/en\/#organization"},"datePublished":"2010-11-21T21:45:00+01:00","dateModified":"2010-11-21T21:45:00+01:00","inLanguage":"en-US","commentCount":15,"mainEntityOfPage":{"@id":"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/#webpage"},"isPartOf":{"@id":"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/#webpage"},"articleSection":".NET, ASP.NET MVC, asp.net mvc, multiple files, mvc, mvc 4.0, uploading"},{"@type":"BreadcrumbList","@id":"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/bratched.com\/en#listItem","position":1,"name":"Home","item":"https:\/\/bratched.com\/en","nextItem":{"@type":"ListItem","@id":"https:\/\/bratched.com\/en\/category\/net\/#listItem","name":".NET"}},{"@type":"ListItem","@id":"https:\/\/bratched.com\/en\/category\/net\/#listItem","position":2,"name":".NET","item":"https:\/\/bratched.com\/en\/category\/net\/","nextItem":{"@type":"ListItem","@id":"https:\/\/bratched.com\/en\/category\/net\/mvc\/#listItem","name":"ASP.NET MVC"},"previousItem":{"@type":"ListItem","@id":"https:\/\/bratched.com\/en#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/bratched.com\/en\/category\/net\/mvc\/#listItem","position":3,"name":"ASP.NET MVC","item":"https:\/\/bratched.com\/en\/category\/net\/mvc\/","nextItem":{"@type":"ListItem","@id":"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/#listItem","name":"Uploading multiple files with C#"},"previousItem":{"@type":"ListItem","@id":"https:\/\/bratched.com\/en\/category\/net\/#listItem","name":".NET"}},{"@type":"ListItem","@id":"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/#listItem","position":4,"name":"Uploading multiple files with C#","previousItem":{"@type":"ListItem","@id":"https:\/\/bratched.com\/en\/category\/net\/mvc\/#listItem","name":"ASP.NET MVC"}}]},{"@type":"Organization","@id":"https:\/\/bratched.com\/en\/#organization","name":"Bratched.com","description":"Blog speaking .Net C# Javascript, Wordpress","url":"https:\/\/bratched.com\/en\/"},{"@type":"Person","@id":"https:\/\/bratched.com\/en\/author\/adminced\/#author","url":"https:\/\/bratched.com\/en\/author\/adminced\/","name":"Bratched","image":{"@type":"ImageObject","@id":"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/05352dcd40ece2c42e5ae2dd683b460b?s=96&d=mm&r=g","width":96,"height":96,"caption":"Bratched"}},{"@type":"WebPage","@id":"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/#webpage","url":"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/","name":"Uploading multiple files with C# | Bratched.com","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/bratched.com\/en\/#website"},"breadcrumb":{"@id":"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/#breadcrumblist"},"author":{"@id":"https:\/\/bratched.com\/en\/author\/adminced\/#author"},"creator":{"@id":"https:\/\/bratched.com\/en\/author\/adminced\/#author"},"datePublished":"2010-11-21T21:45:00+01:00","dateModified":"2010-11-21T21:45:00+01:00"},{"@type":"WebSite","@id":"https:\/\/bratched.com\/en\/#website","url":"https:\/\/bratched.com\/en\/","name":"Bratched.com","description":"Blog speaking .Net C# Javascript, Wordpress","inLanguage":"en-US","publisher":{"@id":"https:\/\/bratched.com\/en\/#organization"}}]},"og:locale":"en_US","og:site_name":"Bratched.com | Blog speaking .Net C# Javascript, Wordpress","og:type":"article","og:title":"Uploading multiple files with C# | Bratched.com","og:url":"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/","article:published_time":"2010-11-21T19:45:00+00:00","article:modified_time":"2010-11-21T19:45:00+00:00","twitter:card":"summary","twitter:title":"Uploading multiple files with C# | Bratched.com"},"aioseo_meta_data":{"post_id":"43","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-21 02:36:46","updated":"2025-06-04 02:52:38","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/bratched.com\/en\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/bratched.com\/en\/category\/net\/\" title=\".NET\">.NET<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/bratched.com\/en\/category\/net\/mvc\/\" title=\"ASP.NET MVC\">ASP.NET MVC<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tUploading multiple files with C#\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/bratched.com\/en"},{"label":".NET","link":"https:\/\/bratched.com\/en\/category\/net\/"},{"label":"ASP.NET MVC","link":"https:\/\/bratched.com\/en\/category\/net\/mvc\/"},{"label":"Uploading multiple files with C#","link":"https:\/\/bratched.com\/en\/2010\/11\/21\/uploading-multiple-files-with-c\/"}],"_links":{"self":[{"href":"https:\/\/bratched.com\/en\/wp-json\/wp\/v2\/posts\/43"}],"collection":[{"href":"https:\/\/bratched.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bratched.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bratched.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bratched.com\/en\/wp-json\/wp\/v2\/comments?post=43"}],"version-history":[{"count":0,"href":"https:\/\/bratched.com\/en\/wp-json\/wp\/v2\/posts\/43\/revisions"}],"wp:attachment":[{"href":"https:\/\/bratched.com\/en\/wp-json\/wp\/v2\/media?parent=43"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bratched.com\/en\/wp-json\/wp\/v2\/categories?post=43"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bratched.com\/en\/wp-json\/wp\/v2\/tags?post=43"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}