【问题标题】:How to debug smartystreets api call?如何调试 smartystreets api 调用?
【发布时间】:2016-07-19 05:46:34
【问题描述】:

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

【问题讨论】:

    标签: python smartystreets


    【解决方案1】:

    这里发生了两件事:

    1. 您的网址不正确。您的代码显示您正在请求 URL https://api.smartystreets.com/1600+Amphitheatre+Parkway,+Mountain+View,+CA。您需要请求 URL https://api.smartystreets.com/?street=1600%20Amphitheatre%20Pkwy&amp;city=Mountain%20View&amp;state=CA&amp;zipcode=,它为我返回了 200 OK 响应。请注意,地址是作为查询参数发送的,而不是在 URL 路径本身中。另请注意,您地址中的特殊字符(即 +,)是 URL 编码的。
    2. 您传入的params(即payload2 的值)是查询参数,如上面的citystatezipcode,但您发送的是HTTP 的值标头,而不是查询参数。根据Requests documentation,将payload2 的标头作为headers 发送。

    希望对您有所帮助。

    【讨论】:

    • 此语法有效:# ss.py import requests import pdb authid = 'jaf110af-b6ae-3ea2-829a-035dcb246392' token = 'kAyGAA0rD0lNykcktJpg' payload2 = {'auth-id':authid, ' auth-token':token,“street”:“1 个无限循环”,“city”:“cupertino”,“state”:“ca”,“zipcode”:“95014”,“candidates”:“1”} site2 = 'api.smartystreets.com/street-address' req2 = requests.get(site2,params=payload2) pdb.set_trace() req2.status_code req2.json()
    • 确保您仍将身份验证令牌和身份验证密钥传递给 API。此外,请求 URL 应以 https://api.smartystreets.com/street-address? 开头,后跟参数。如果您没有使用该前缀访问 API,您仍然会得到 200 OK,但您实际上不会使用您的地址参数向 API 发出请求
    猜你喜欢
    • 2023-03-03
    • 2018-01-20
    • 1970-01-01
    • 2011-11-11
    • 2020-10-20
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多