2016-03-31 4 views
0

私はPython経由でSmartyStreets APIを使いたいです。smartystreets APIコールをデバッグする方法は?

# ss.py 

import requests 
import pdb 

authid = 'jaf110af-b6ae-3ea2-829a-035dcb246392' 
token = 'kAyGAA0rD0lNykcktJpg' 
payload2 = {'auth-id':authid, 'auth-token':token} 
add_s = '1600+Amphitheatre+Parkway,+Mountain+View,+CA' 
site2 = 'https://api.smartystreets.com/'+add_s 

req2 = requests.get(site2,params=payload2) 

pdb.set_trace() 

req2.status_code 
#req2.json() 
req2.text 
'bye' 

をAPIサーバ404を発行しているので、おそらく私は構文エラーがあります。ここでは

は、私が使用していたスクリプトです。

API呼び出しをAPIサーバーにデバッグする方法を理解してください。ここで

は私のセットアップに関するいくつかの情報です:

[email protected]:~/ks/c/lodgiq $ python 
Python 3.5.1 |Anaconda 4.0.0 (64-bit)| (default, Dec 7 2015, 11:16:01) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 
>>> 
[email protected]:~/ks/c/lodgiq $ 
[email protected]:~/ks/c/lodgiq $ 
[email protected]:~/ks/c/lodgiq $ python ss.py 
> /home/dan/ks/c/lodgiq/ss.py(16)<module>() 
-> req2.status_code 
(Pdb) req2.status_code 
404 
(Pdb) 

答えて

1

ここで起こって二つのものがあります。

  1. があなたのURLが正しくありません。あなたのコードは、あなたがURL https://api.smartystreets.com/1600+Amphitheatre+Parkway,+Mountain+View,+CAを要求していることを示しています。 https://api.smartystreets.com/?street=1600%20Amphitheatre%20Pkwy&city=Mountain%20View&state=CA&zipcode=というURLをリクエストする必要があります。200 OKという返信が返されます。アドレスは、URLパス自体ではなく、クエリパラメータとして送信されることに注意してください。また、住所の特殊文字(+,)はURLエンコードされています。
  2. paramsあなたが通過している(すなわちpayload2の値)上記citystate、及びzipcodeように、クエリパラメータであることが意図されていますが、HTTPヘッダの値で送信され、クエリはないパラメータ。 のヘッダーをRequests documentationとしてheadersとして送信します。

希望があれば。

+0

この構文は動作します: #1 ss.py インポート要求 輸入PDB AUTHID = 'jaf110af-b6ae-3ea2-829a-035dcb246392' を トークン= 'kAyGAA0rD0lNykcktJpg' payload2 = { 'AUTHID': "都市": "cupertino"、 "状態": "ca"、 "zipcode": "95014"、 "auth-token":トークン、"ストリート"候補者 ":" 1 "} site2 = 'https://api.smartystreets.com/street-address' req2 = requests.get(site2 、のparams = payload2) pdb.set_trace() req2.status_code req2.json() – user3676943

+0

あなたはまだだけでなくAPIに認証トークンと認証キーを渡していることを確認します。また、リクエストURLは、 'https://api.smartystreets.com/street-address?'に続いてパラメータを入力する必要があります。その接頭辞でAPIをヒットしないと、200 OKが表示されますが、実際にはアドレスパラメータを使用してAPIにリクエストする必要はありません – camiblanch

関連する問題