2017-04-12 7 views
0

PythonとRequestを使用してStreak CRM APIを操作する。私は4XXエラーをどのようにフレーズ要求に応じて取得しています。 (以下の実施例)応答 - 認証付きPython API

response = requests.get('https://www.streak.com/api/v1/pipelines?api-key=xxxxxxxx') 
response.headers['Content-Type'] = 'application/json' 
print(response.status_code) 
print(response.content) 

結果:私は、ファイルパスの後に ".json" を追加した場合

を:

requests.get('https://www.streak.com/api/v1/pipelines.json?api-key=xxxxxxxx') 
:401 "HTTP基本認証やクッキーの認証を試みるストリークAPIのための認証が必要です"

結果:400 "無効なAPIパスが指定されています"したがって、私は認証されたと仮定していますが、ファイルパスが不十分です。

しかし、私は、端末に入力したのと同じファイルパスと資格情報を使用する場合:魔法のように

curl https://www.streak.com/api/v1/pipeline -u xxxxxxxx: 

作品。

なぜファイルパスはターミナルで動作しますが、Pythonでは動作しませんか? .jsonをファイルパスに追加する必要があるのはなぜですか? APIの使用を初めて知ったので、どんな援助も感謝しています。ありがとう。

答えて

0

なぜか分かりませんが、以下のように言い換えるとうまくいきます。ステータスコード200を受信しました:

response = requests.get('https://www.streak.com/api/v1/pipelines', auth=('xxxxxx','')) 

APIキーはusernameパラメータに入り、passwordパラメータは空白のままです。

0

エラーメッセージは、あなたが知る必要があることをすべて示しています。 Basic Authの場合、URLではなく、リクエストヘッダーに認証情報を入れます。エンドポイントに.jsonを追加すると、通常はJSON応答が必要です。それがcurlで動作する理由は、curlの-uフラグがAuthヘッダを設定しているためです。

関連する問題