回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试将以下curl请求转换为python@3.8密码curl将excel文件数据发送到服务器</p>
<p>curl请求被正确解析,但是我的python代码不起作用,我从服务器收到了一个错误的请求</p>
<pre><code>curl -X POST "http://localhost:8080/rest/2.0/import/ejob" -H "accept: application/json" -H "Authorization: Basic xyz" -H "Content-Type: multipart/form-data" -F "deleteFile=" -F "simulation=" -F "fileName=import_file" -F "sheetName=" -F "headerRow=" -F "sendNotification=" -F "sheetIndex=" -F "fileId=" -F 'template= [ { "resourceType": "xyz", "type": { "name": "xyz" }, "identifier": { "name": "${1}", "domain": { "name": "xyz", "community": { "name": "test" } } } } ]' -F "batchSize=10000" -F "file=@filename.xlsx;type=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
</code></pre>
<p>Python代码:</p>
<pre><code>url = "http://localhost:8080/rest/2.0/import/ejob"
payload={'deleteFile': '',
'simulation': '',
'fileName': 'xyz',
'sheetName': '',
'headerRow': '',
'sendNotification': '',
'sheetIndex': '',
'fileId': '',
'template': ' [ { "resourceType": "Asset", "type": { "name": "xyz" }, "identifier": { "name": "${1}", "domain": { "name": "xyz", "community": { "name": "file" } } } } ]',
'batchSize': '10000',
'file': '@filename.xlsx;type=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}
files = {'file': ('import_file', open('filename.xlsx', 'rb'), 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', {'Expires': '0'})}
headers = {
'accept': 'application/json',
'Authorization': 'Basic xyz',
'Content-Type': 'multipart/form-data',
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
</code></pre>
<p><a href="https://i.stack.imgur.com/8w2ee.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/8w2ee.png" alt="Error as seen from wireshark for python code"/></a></p>
<p>对于从python发送的请求,在Wireshark中看不到边界。下面的屏幕截图是针对CURL的</p>
<p><a href="https://i.stack.imgur.com/Bf2gy.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Bf2gy.png" alt="I don't see boundary in my python request"/></a></p>