Аутентифицированный запрос в Google App Engine с использованием функции fetch (): как предоставить информацию в заголовок запроса? - PullRequest
0 голосов
/ 16 декабря 2009

Я пытаюсь автоматически перейти, используя Google App Engine , мой пароль и идентификатор на eBay, на эту страницу:

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

(Это место, куда меня перенаправили с этого URL: https://signin.ebay.com). Вот как выглядит страница: alt text
(источник: narod.ru )

Ранее я задавал несколько вопросов, и здесь один очень приятный сторонник предложил использовать код по этой ссылке: http://chillorb.com/?p=195 Если у вас нет времени, чтобы перейти туда, вот как это страница выглядит так:

alt text
(источник: narod.ru )

Итак, я вставил этот код в мой редактор, заменив действительный URL-адрес eBay, мой идентификатор и пароль. Мой ID seeyousoondanny и пароль happy1 (я создал эту учетную запись на eBay только для экспериментов, поэтому я не боюсь выдавать свой ID и пароль). Вот как выглядел код в моем редакторе:

alt text
(источник: narod.ru )

Но когда я запускаю этот код, я получаю только это:

alt text
(источник: narod.ru )

Что я здесь не так делаю?

+++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++

Дополнительно:

Вот нижняя часть страницы с ошибкой (я думаю, это будет понятнее, если вы нажмете на ссылку на это изображение ):

alt text

+++++++++++++++++++++++++++++++++++++++++++++++ ++++

Дополнительно:

Полагаю, в этом коде нет синтаксических ошибок:

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 ]

3 голосов
/ 16 декабря 2009

Я не уверен, поможет ли это, но у ebay есть API, который будет проще использовать и включать Проверить http://developer.ebay.com/businessbenefits/aboutus/

2 голосов
/ 16 декабря 2009

Похоже, что некоторые символы кавычек неправильного типа - обратные «умные кавычки», а не обычные обычные символы ASCII-кавычек. Сложно сказать точно из скриншотов! Экран ошибок, который вы показываете (из SDK GAE), показывает точное местоположение ошибки в самом низу - и вы показываете, что она прокручена до самого верха, так что это не помогает.

В GAE, как и при любом другом использовании Python, кавычка выполняется с помощью простых одинарных и двойных кавычек: ' и "; не через наклонные, инвертированные или «умные» символы кавычек, такие как

`

(трудно четко показать инвертированную одинарную кавычку в SO, за исключением кодового блока, поскольку он используется для маркировки встроенного кода ;-) или , , и т. Д. Так что внимательно проверяйте свой код, чтобы убедиться, что вы используете обычные простые цитаты!

...