title: How to send JSON as part of multipart POST-request
body: <p>I have following POST-request form (simplified):</p>
  
  <pre><code>POST /target_page HTTP/1.1  
  Host: server_IP:8080
  Content-Type: multipart/form-data; boundary=AaaBbbCcc
  
  --AaaBbbCcc
  Content-Disposition: form-data; name="json" 
  Content-Type: application/json
  
  { "param_1": "value_1", "param_2": "value_2"}
  
  --AaaBbbCcc
  Content-Disposition: form-data; name="file"; filename="..." 
  Content-Type: application/octet-stream
  
  &lt;..file data..&gt;
  --AaaBbbCcc--
  </code></pre>
  
  <p>I try to send POST-request with <code>requests</code>:</p>
  
  <pre><code>import requests
  import json
  
  file = "C:\\Path\\To\\File\\file.zip"
  url = 'http://server_IP:8080/target_page'
  
  
  def send_request():
      headers = {'Content-type': 'multipart/form-data; boundary=AaaBbbCcc'}
  
      payload = { "param_1": "value_1", "param_2": "value_2"}
  
      r = requests.post(url, files={'json': (None, json.dumps(payload), 'application/json'), 'file': (open(file, 'rb'), 'application/octet-stream')}, headers=headers)
  
      print(r.content)
  
  if __name__ == '__main__':
      send_request()
  </code></pre>
  
  <p>but it returns status <code>400</code> with following comment:</p>
  
  <pre><code>Required request part \'json\' is not present.
  The request sent by the client was syntactically incorrect.
  </code></pre>
  
  <p>Please point on my mistake. What should I change to make it work?</p>