2013-04-14 2 views
2

Из-за ужасно медленного веб-интерфейса Amazon's «Управление вашим Kindle», я пытаюсь выяснить, как создать приложение, которое подключается к недокументированным службам, которые подают страницу управления. Теперь я установил, какие URL-адреса и параметры использовать для извлечения данных JSON, необходимых для выполнения операций CRUD, но я застрял в том, что не смог успешно выполнить POST-данные любой из служб, использующих CURL.Невозможно реплицировать запрос в Amazon Manage Kindle с помощью Curl. Что мне не хватает?

Существует проблема с аутентификацией, но я отправляю все соответствующие заголовки и файлы cookie, которые я могу найти. Все еще получите

HTTP/1.1 302 MovedTemporarily 
Location: https://www.amazon.com/ap/signin?_encoding=UTF8&accountStatusPolicy=P1&openid.assoc_handle=usflex&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.ns.pape=http%3A%2F%2Fspecs.openid.net%2Fextensions%2Fpape%2F1.0&openid.pape.max_auth_age=900&openid.return_to=https%3A%2F%2Fwww.amazon.com%2Fgp%2Fdigital%2Ffiona%2Fmanage%2Ffeatures%2Forder-history%2Fajax%2FqueryPdocs.html%3Fie%3DUTF8%26contentType%3DPersonal%2520Documents%26count%3D15%26offset%3D0 

После отправки этого запроса, который должен перечислить все личные документы. Файлы cookie были скопированы с помощью веб-инструментов разработчика Chrome.

> POST /gp/digital/fiona/manage/features/order-history/ajax/queryPdocs.html HTTP/1.1 
> User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5 
> Host: www.amazon.com 
> Accept: */* 
> Cookie: session-token=8tAmbclc1/ZjtWU8o5VXyU5H8s0/Yiy346W1/Nx4Sz2BzTUWUR9lkwDABzzgRW1lwZUqcu8MqhGzbby2Xg9RA8Y0cwpLRDk5sf6eXUwNQBvZAcgEXsHG8Bj+24q2C1MZ9v5hFrzBNr6pDP+9CYXrMl2WaEVzmvd/sBO69jk5o3mK3PJf1leY6YhLAL3W8dVj89O+ebIoaPvLHP7naDpImbqaa5bwGS4ki+AzJDLAHs5UMwQkiuXoUCnukz1+WqCr0rHhKoPkI17WGm6MrRDs9/PC2ll7+qDU13; session-id=184-5755217-1234567; session-id-time=2082787201l 
> Content-Length: 48 
> Content-Type: application/x-www-form-urlencoded 

(Да, я изменил свою сессионный токен и идентификатор сеанса, прежде чем отправлять это онлайн: р)

Я использую следующий вызов на CLI и хранятся куки в cookie3.txt

curl -v --cookie cookie3.txt --data 'offset=0&count=15&contentType=Personal+Documents' 'https://www.amazon.com/gp/digital/fiona/manage/features/order-history/ajax/queryPdocs.html' 

Любая идея, что мне здесь не хватает, чтобы заставить ее работать?

ответ

2

Кажется, что Amazon делает это лучше всего реализовать Security Through Obscurity; если ваш пользовательский агент не является признанным браузером, таким как Firefox, Chrome или IE, вам будет просто отказано в доступе. Чтобы получить запросы через один, нужно подделать пользовательский агент.

Я закончил тем, что отказался от cURL для Python и библиотеки Requests. Все необходимые шаги, необходимые для входа в FIONA, можно увидеть в the code on GitHub.