我有一个工作的curl
命令,如下所示:
curl -X POST \
http://localhost:7777/upload \
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-F file_name=temp.py \
-F file_content=@/Users/blah/requirements.txt \
-F d_name=blah \
-F owner=blah \
-F name=blah \
-F local_git_path=blah \
-F local_git_hash=blah
当然,我摆弄邮递员,让我的邮件从我的电脑到我的测试服务。我面临的问题是当我为我的服务器编写client
时。我的上述转换示例如下:
这真的开始让我恼火了,因为POST工作得很好,但是我在服务器端收到的文件内容是一个空文件。这只发生在python端。在
但是cURL
不会发生。我对request
模块很满意。我宁愿不改。在
另外,Web服务器是一个flask
应用程序,因为我的cURL
工作正常,所以看起来工作得很好。在
更新#1
还尝试了以下方法,这是我在改用webkits之前的第一种方法。这真的让我大吃一惊——我从我的网络服务器上得到了404。这很奇怪,因为我的cURL
仍在工作,这表明我的Web服务器工作正常。在
def upload(self, file_path):
headers = {
'Content-Type': "application/json",
'content-type': "multipart/form-data"
}
api_url = os.path.join(Config().get_url(), "upload")
files_dict = dict(file_content=open(file_path, "rb"),
file_name=(None, "temp.py"),
dag_name=(None, "dag_name"),
owner=(None, "blah"),
name=(None, "blah"),
local_git_path=(None, "blah"),
local_git_hash=(None, "blah"))
response = requests.post(url=api_url, files=files_dict, headers=headers)
return json.loads(response.text)
目前没有回答
相关问题 更多 >
编程相关推荐