我想通过Python使用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调用。
以下是有关我的设置的一些信息:
dan@h81:~/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.
>>>
>>>
dan@h81:~/ks/c/lodgiq $
dan@h81:~/ks/c/lodgiq $
dan@h81:~/ks/c/lodgiq $ python ss.py
> /home/dan/ks/c/lodgiq/ss.py(16)<module>()
-> req2.status_code
(Pdb) req2.status_code
404
(Pdb)
答案 0 :(得分:1)
这里发生了两件事:
https://api.smartystreets.com/1600+Amphitheatre+Parkway,+Mountain+View,+CA
。您需要请求网址https://api.smartystreets.com/?street=1600%20Amphitheatre%20Pkwy&city=Mountain%20View&state=CA&zipcode=
,该网址会为我返回 200 OK 响应。请注意,地址是作为查询参数发送的,而不是URL路径本身。另请注意,您地址中的特殊字符(即+
和,
)是按网址编码的。params
(即payload2
的值)是查询参数,例如city
,state
和zipcode
上面但您发送的是HTTP标头的值,而不是查询参数。根据{{3}}发送payload2
标题为headers
。希望有所帮助。