2017-06-20 7 views
0

現在、ファイルをAPIに送信する際に問題が発生しています。私は手動でスクリプトbase64の出力をスクリーンに印刷し、これを直接APIのサンドボックスにコピー&ペーストして正しく動作するようにしましたが、JSONでパッケージ化して送るとすぐに動作しません。私は必要なものファイルをBase64でエンコードしてAPIに送信

は、APIに送信するには、このです:

{ 
    "content": "mybase64encodedfilestuff" 
} 

と私のpythonコードは次のとおりです。

r = requests.post(url='https://api.example.com/uploads', data=payload, 
        headers={'Content-Type': 'application/json', 
          'Authorization': 'Basic '+api_string}, timeout=5) 

with open(filename, "rb") as image_file: 
    encoded_string = base64.b64encode(image_file.read()) 
encoded_string = encoded_string.decode("utf-8") 
payload = {} 
payload['content'] = encoded_string 
json_payload = json.dumps(payload) 

私はその後としてAPIにこれを送ります

シンプルなものを見逃してしまったような気がしますが、エラー400が出てくるので、まずは有効な内容を入力してください。ペイロードに印刷出力をコピー&ペーストすると、それは動作します。

+0

'json_payload'変数を作成していますが、' payload'を送信しています。それはあなたがすることを意味しますか? –

+0

ありがとうPedro :-)時には見ることができないことがあります! –

答えて

0

私は文字列をJSONに変換しましたが、JSONified文字列ではなく元の文字列を使用しました。

関連する問題