我有一个small_file.txt
文件,其中包含:
1asdfaksdjfhlaksjdhflkjashdflkjhasldkjfhlaksdfhasdf:
2asdfaksdjfhlaksjdhflkjashdflkjhasldkjfhlaksdfhasdf:
3asdfaksdjfhlaksjdhflkjashdflkjhasldkjfhlaksdfhasdf
4asdfaksdjfhlaksjdhflkjashdflkjhasldkjfhlaksdfhasdf:
请注意末尾的冒号,它们只是常规字符串。
当我尝试使用python requests
它发送它不起作用。出于某种原因,它等待带有冒号的第一行,然后从那里开始发送所有行。例如,在上面的文件中,它POST
只会:
3asdfaksdjfhlaksjdhflkjashdflkjhasldkjfhlaksdfhasdf
4asdfaksdjfhlaksjdhflkjashdflkjhasldkjfhlaksdfhasdf:
我该如何解决这个问题?我不确定发生了什么。
这是我的代码的简单版本:
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()
当我尝试发送.csv
每行带有时间戳的文件时,不会发送任何内容,因为每行都有一个冒号。