title: Python: Requests won't POST if I have punctuation in my data
body: <p>I have a <code>small_file.txt</code> file that contains:</p>
  
  <pre><code>1asdfaksdjfhlaksjdhflkjashdflkjhasldkjfhlaksdfhasdf:
  2asdfaksdjfhlaksjdhflkjashdflkjhasldkjfhlaksdfhasdf:
  3asdfaksdjfhlaksjdhflkjashdflkjhasldkjfhlaksdfhasdf
  4asdfaksdjfhlaksjdhflkjashdflkjhasldkjfhlaksdfhasdf:
  </code></pre>
  
  <p>Notice the colons at the end, they are just regular strings. </p>
  
  <p>When I try to send it using <code>python requests</code> it doesn't work. For some reason, it waits for the first line with a colon and then sends all the lines starting from there. So for example, in the file above, it will <code>POST</code> only: </p>
  
  <pre><code>3asdfaksdjfhlaksjdhflkjashdflkjhasldkjfhlaksdfhasdf
  4asdfaksdjfhlaksjdhflkjashdflkjhasldkjfhlaksdfhasdf:
  </code></pre>
  
  <p>How can I fix this issue? I'm not sure what is going on.</p>
  
  <p>Here is a simple version of my code:</p>
  
  <pre><code>import requests
  import sys
  import json
  import os
  
  
  token                    = 'nVQowAng0c'
  url                      = "https://api.hipchat.com/v2/room/test_room/share/file"
  headers                  = {'Content-type': 'multipart/related; boundary=boundary123456'}
  headers['Authorization'] = "Bearer " + token
  
  
  filepath = 'small_file.csv'
  data     = open(filepath, 'rb').read()
  
  payload = """\
  --boundary123456
  Content-Type: application/json; charset=UTF-8
  Content-Disposition: attachment; name="metadata"
  --boundary123456
  Content-Disposition: attachment; name="file"; filename="{0}"
  {1}
  --boundary123456--\
  """.format(os.path.basename(filepath), data)
  
  
  r = requests.post(url, headers=headers, data=payload)
  r.raise_for_status()
  </code></pre>
  
  <p>When I try to send something like a <code>.csv</code> file with a timestamp on every row, nothing will get sent because each row has a colon.</p>