2017-04-25 24 views
1

私はフラスコで投稿要求を送信しようとしています。フラスコに投稿要求を送信する

Content-Type: application/jsonのjsonオブジェクトをヘッダとして送信したいと思います。

次のように私はリクエストモジュールでこれをやっている:

json_fcm_data = {"data":[{'key':app.config['FCM_APP_TOKEN']}], "notification":[{'title':'Wyslalem cos z serwera', 'body':'Me'}], "to":User.query.filter_by(id=2).first().fcm_token} 
json_string = json.dumps(json_fcm_data) 
print json_string 
res = requests.post('https://fcm.googleapis.com/fcm/send', json=json_string) 

しかし、これは私を与える:

TypeError: request() got an unexpected keyword argument 'json'

この問題を解決する方法上の任意のアドバイスを?

+0

パス 'データ= json_string' –

+0

が、それは、「コンテンツタイプ:アプリケーション/ JSONを」設定するのですか? – demoo

+1

3つの属性、 'headers'、' param'と 'data'があります。 'content-type'のようにヘッダー変数を設定するには、ヘッダー属性に追加する必要があります。 –

答えて

2

まず、エラーを修正します。これに

res = requests.post('https://fcm.googleapis.com/fcm/send', json=json_string) 

res = requests.post('https://fcm.googleapis.com/fcm/send', data=json_string) 

あなたはrequests.post受け入れることができないという状態を取得しているエラー

あなたはこれを変更する必要があります引数はjsonですが、キーワードargを受け取ります名前はdataであり、json形式である可能性があります。

その後、あなたのヘッダを追加:

あなたはrequestsモジュールでカスタムヘッダーを送信する場合は、次のように、あなたがそれを行うことができます。

headers = {'your_header_title': 'your_header'} 
# In you case: headers = {'content-type': 'application/json'} 
r = requests.post("your_url", headers=headers, data=your_data) 

をすべてをまとめると:

jsonの書式設定を少し修正する必要があります。完全なソリューションは次のようになります。

json_data = {"data":{ 
       'key':app.config['FCM_APP_TOKEN'] 
       }, 
      "notification":{ 
       'title':'Wyslalem cos z serwera', 
       'body':'Me' 
       }, 
      "to":User.query.filter_by(id=2).first().fcm_token 
      } 

headers = {'content-type': 'application/json'} 
r = requests.post('https://fcm.googleapis.com/fcm/send', 
        headers=headers, 
        data=json.dumps(json_data)) 
+0

それは縫い目があります<3ありがとう! JSONオブジェクトを正しく実行しているかどうかを確認できますか? { "タイトル": { "データ": { "キー": "値" } "通知" "こんにちは"、 "身体":私はこのような何かを取得したいのですが」 ok " }、 " to ":" token " } – demoo

+1

私は自分の答えに完全な解決策を追加しました。 –

+0

"JSON_PARSING_ERROR:位置0の予期しない文字(d)。\ n" – demoo

関連する問題