在Google App Engine中使用fetch()函数进行认证请求:如何在请求头中提供信息?
我正在尝试通过Google App Engine自动将我的密码和ID传递给eBay,目标页面是:
(这是我从这个网址https://signin.ebay.com重定向到的地方)。这是页面的样子:
(来源:narod.ru)
之前我问过一些问题,这里有位热心的朋友建议我使用这个链接中的代码:http://chillorb.com/?p=195 如果你没时间去看,这里是那个页面的样子:
(来源:narod.ru)
于是,我把那段代码粘贴到我的编辑器里,替换成有效的eBay网址、我的ID和密码。我的ID是seeyousoondanny,密码是happy1(我在eBay上创建这个账户只是为了实验,所以我不怕泄露我的ID和密码)。这是我在编辑器中看到的代码:
(来源:narod.ru)
但是当我运行这段代码时,只得到了这个:
(来源:narod.ru)
我在这里做错了什么呢?
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
补充:
这是错误页面的底部(我觉得如果你点击这个链接查看这张图片,会更清楚):
+++++++++++++++++++++++++++++++++++++++++++++++++++
补充:
我想这段代码没有语法错误:
from google.appengine.api import urlfetch
import base64
url = "https://signin.ebay.com/ws/eBayISAPI.dll?SignIn&UsingSSL=1&pUserId=&co_partnerId=2&siteid=0&ru=http%3A%2F%2Fcgi5.ebay.com%2Fws2%2FeBayISAPI.dll%3FSellItem%26hm%3Dum.rundkoi376%26%26hc%3D1%26guest%3D1&pageType=1144"
authString = 'Basic' + base64.encodestring('seeyousoondanny:happy1')
data = urlfetch.fetch(url, headers= {'AUTHORIZATION' : authString })
if data.status_code == 200:
print "content-type: text/plain"
print
print data.status_code
2 个回答
我不确定这是否有帮助,但eBay有一个API,使用起来会更简单,也更容易整合。你可以看看这个链接:http://developer.ebay.com/businessbenefits/aboutus/
看起来你用的引号有点问题——是那种反向的“智能引号”,而不是普通的ASCII引号。通过截图很难准确判断!你展示的错误信息(来自GAE的SDK)在最底部显示了错误的具体位置,但你把它滚动到了最顶部,这样就看不到了。
在GAE和其他Python的使用中,引号是用普通的单引号和双引号来表示的:'
和 "
;而不是用倾斜的、反向的或“智能”的引号,比如
`
(在SO中很难清楚地显示反向单引号,除非用代码块,因为它用来标记行内代码;-) 或者 ″
、”
、“
等等。所以请仔细检查你的代码,确保你使用的是普通的引号!