海外発のデータベースSaaSのRagicというサービスのAPIを触っています。
そこでcurlコマンドでのPOSTの例が以下の通りでています。
curl -F "800003=Dwight Schrute" \ -F "800007=Partner" \ -F "api=" \ -H "Authorization:Basic [あなたのToken]" \ https://www.ragic.com/demo/sales/1/3
これをPythonのrequestsにその他に変換してくれるこちらのサイト
変換サイト
を使用すると
import requests headers = { 'Authorization': 'Basic [あなたのToken]', 'Content-Type': 'application/json' } files = { '800003': (None, 'Dwight Schrute'), '800007': (None, 'Partner'), 'api': (None, ''), } response = requests.post('https://www.ragic.com/demo/sales/1/3', headers=headers, files=files) #800003~7はデータベースのフィールドidです。
でした。
これを自分のデータベースの情報に置き換えてPOSTを試みているのですが、requestは正常終了しても、RagicのAPIからは"Invalid JSON post body"というオリジナルのエラーメッセージが返ってきます。
Pythonとマクロの初心者なのですが、curlの-Fはバイナリファイルのアップの際のコマンドですよね??
API docの記述でもただの文字列をPOSTしているようで、ファイルではないのでPythonのopen()も使えないですよね?
curlの-dコマンド扱いにして
params=('800003', 'Dwight Schrute'), ('800007', 'Partner'), ('api', '') )
としてのrequestも試したのですがうまくいきません。
Ragicは皆さんご存知ないと思うので、curlの-Fについての質問として投稿しています。
私の-Fの理解が間違っていいるでしょうか?
何か別の-Fの解釈の仕方があるのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/03/08 07:27 編集