I am developing Windows Phone 8 app. While you could decode an HTTP body request made with JSON natively with Python thanks to the json You can use formidable manually as shown below or through the koa-better-body package which is using formidable under the hood and support more features and different request bodies, check its documentation for more info.. Each field type knows what its blank value is e.g., for DateField, its None instead of the empty string. For example, if a field has an array value, the JSON array representation will be used: { "field": [ 1, 2, 3] } All field names in the specification are case sensitive. For normal logins (i.e. with Koa and Formidable. multipart/form-data is one of the value of enctype attribute, which is used in form element that have a file upload. Nowadays, it tends to be replaced by JSON encoded payloads; nevertheless, it is still widely used. For sending api requests via JSON or some programming language, @ResponseBody annotation should be used. Once the code verifies its a multipart content we get the file and extra data like "companyname", and you can process your file, save it and return the desired result. The above code will stay in your Web API Controller that accepts multipart/form-data. The format of a multipart MIME message is easiest to understand by looking at an example request: So when using FormData you Just remove the Content-Length and Content-Type headers from your code as these headers will be set automatically by the browser.. If you open up your network inspector, run this code snippet, and submit the form you should see that the Content-Length is set correctly: Otherwise, in the case of an HTTP The method should be marked with consume type, either multipart/form-data or multipart/mixed type. Edit 2: I do not want to upload to a WebDAV folder or something like that. Of course, with Koa v1, v2 or future v3 the things are very similar. Form-Data . multipart/form-data is significantly more complicated but it allows entire files to be included in the data. RFC 2616 HTTP/1.1 June 1999 may apply only to the connection with the nearest, non-tunnel neighbor, only to the end-points of the chain, or to all connections along the chain. On the other hand, Request Param just obtain the string ; Saves the files to the local file system using a file name generated by the app. The API of this library is inspired by the XMLHttpRequest-2 FormData Interface. to disable some parsing capabilities of Formidable, you can disable the plugin which corresponds to the parser. should always return null, as ServletRequest's getAttribute method does not return request/form parameters but attributes set by the servlet context. 4.10.22 Resetting a form. This form contains a text input control and a file input control. Note: this example is assuming Koa v2. In this above example, the cleaned_data value for nick_name is set to an empty string, because nick_name is CharField, and CharField s treat empty values as an empty string. RFC 7578 multipart/form-data July 2015 In most multipart types, the MIME header fields in each part are restricted to US-ASCII; for compatibility with those systems, file names normally visible to users MAY be encoded using the percent- encoding method in Section 2, following how a "file:" URI [] might be encoded.NOTE: The encoding method described in [], which would add a It seems when I gave this answer (4+ years ago), I didn't really understand the question, or how form fields worked.I was just answering based on what I had tried in a difference scenario, and it worked for me. ReadForm parses an entire multipart message whose parts have a Content-Disposition of "form-data". In previous tutorials, we introduced the basics of form handling and explored the form tag library in Spring MVC.. Render an HTML template with a