2015-12-21 7 views
5

私は、APIを呼び出すためのPythonリクエストモジュールを使用しています。 コードをAWSにプッシュするまでは、すべてうまくいきました。 AWSでもdevサーバで作業している場合、つまりec2.####.amazon.com:8000が動作しています。ここで Python Requests POSTが機能しない

は私のコードです:

r = requests.post(api_url, data = {"var 1":"value", "var 2":"value"}) 

私のAPIのURLが許可されていませんGET方法私はrequests.postは何が間違っているget

任意のアイデアとして読み込まれることを意味GETメソッドが許可されていないというエラーを取得しています応答におけるのでここに。お使いのサーバがhttpsメソッドを使用している場合

+0

プロジェクトポート8000​​(djangoの生産envモード)なしで、あなたのrequest.methodのチェックをコメントし、あなたのAPIへのリクエストが動作しているかどうかを確認することもできます。 –

+0

@JatinBansalはいそれは8000なしで働いていて、投稿だけがエラーを出していますgetはうまく動いています – user5594493

+0

あなたのPOSTリクエストをテストするためにRESTクライアントを試すことができますか?また、エラーが発生したときに得られるdjangoのデバッグ情報のいくつかを投稿してください(debugをTrueに設定してください)。あなたのlocalhostにある –

答えて

3

は、実際に問題が、SSLによるものであった、あなたはrequests.post

r = requests.post(api_url, data = {"var 1":"value", "var 2":"value"}, verify=True) 

に次の行を追加する必要があります。また必ずあなたのapi_urlがhttpsないhttp

私は持っているが含まれて作りますその小さな関数を書いた

def get_base_url(request): 
    host = get_host(request) 
    if request.is_secure(): 
     return '{0}{1}/{2}'.format('https://', host, 'url') 
    else: 
     return '{0}{1}/{2}'.format('http://', host, 'url') 
関連する問題