Pythonでリクエストlibを使用してサーバにファイルをアップロードしています。私はそのドキュメントといくつかのstackoverflowの質問を読んで、次のコードを実装:Pythonリクエストのポストリクエストでステータスを返す405
url = "http://example.com/file.csv"
id = "user-id"
password = "password"
headers = {'content-type': 'application/x-www-form-urlencoded'}
with open(file_path, 'rb') as f:
response = requests.post(url=url, files={'file':f}, auth=HTTPBasicAuth(username=id, password=password),headers=headers)
しかし、このコードは動作していない、405とMethod Not Allowed
を返すresponse.reasonを返すresponse.status_code。私は、端末上でcurlコマンドを使用してファイルをアップロードするとそれが正常に動作し、ファイルがアップロードされます:
curl -u user-id:password -T file/path/on/local/machine/file.csv "http://example.com/file.csv"
は、誰かがここで助けてください。
なぜコンテンツタイプを設定していますか?これは、ファイルアップロードの間違ったコンテンツタイプです。 'files'はあなたのためにコンテンツタイプを扱います。 –
@MartijnPietersは迅速な対応に感謝します。トレチン溶液が働いた。私はこれらのサーバーのものに新しいです。 – sdream