2014-11-07 3 views
0

Я делаю простую аутентификацию HTTP-запросов по сравнению с нашим внутренним сервером, получая файл cookie, а затем попадая на сервер Cassandra RESTful для получения данных. При возврате файла cookie request.get() задыхается.python 2.7 request.get() return cookie raise TypeError

У меня есть скрипт curl, который извлекает данные успешно, я бы лучше работал с данными JSON ответа в чистом питоне.

Любые подсказки к тому, что я делаю неправильно ниже? Я сбрасываю куки-файлы, это выглядит отлично, очень похоже на мой кудрявый кук.

Craig


import requests 
import rtim 

# this makes the auth and gets the cookie returned, save the cookie 
myAuth = requests.get(rtim.rcas_auth_url, auth=(rtim.username, rtim.password),verify=False) 
print myAuth.status_code 
authCookie=myAuth.headers['set-cookie'] 

IXhost='xInternalHostName.com:9990' 
mylink='http:/%s/v1/BONDISSUE?format=JSONARRAY&issue.isin=%s' % (IXhost, 'US3133XK4V44') 

# chokes on next line .... doesn't like the Cookie format 
r = requests.get(mylink, cookies=authCookie) 
(Pdb) next 
TypeError: 'string indices must be integers, not str' 

ответ

0

Я думаю, что проблема в последней строке:

r = requests.get(mylink, cookies=authCookie)

запросы предполагают, что параметр cookies является словарем, но вы передаете строку объект authCookie.

Исключение возникает, когда запросы пытаются обрабатывать строку authCookie в качестве словаря.

+0

Спасибо Rikka, поэтому я использую authCookie как значение, какую строку я использую в качестве ключа dict? – Craig

+0

Я не уверен. Какова ценность authCookie? Я думаю, что authCookie сам должен содержать как ключи, так и значения для файлов cookie, но в строчном формате. – Rikka