如何调试smartystreets api调用?

时间:2016-03-31 00:25:05

标签: python smartystreets

我想通过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) 

1 个答案:

答案 0 :(得分:1)

这里发生了两件事:

  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路径本身。另请注意,您地址中的特殊字符(即+,)是按网址编码的。
  2. 您传入的params(即payload2的值)是查询参数,例如citystatezipcode上面但您发送的是HTTP标头的值,而不是查询参数。根据{{​​3}}发送payload2标题为headers
  3. 希望有所帮助。