我正在使用BullionVault API查看我的订单。在
我必须登录才能查看。
我的问题是,当我尝试使用HTTP请求登录时,我的控制台输出是BUllionVault登录页面的htmldom。在
我使用官方文件的要求 https://www.bullionvault.com/help/xml_api.html和python语言。在
我的登录请求:
payload2 = {'j_username': 'myusername', 'j_password': 'mypassword'}
requests.get("https://or.bullionvault.fr/secure/login.do", params=payload2)
我请求查看我的订单:
^{2}$编辑:
感谢@Vikas我更新了我的代码。在
login_page_url = "https://or.bullionvault.fr/secure/login.do"
login_page_url2 = "https://live.bullionvault.com/secure/j_security_check"
payload2 = {'j_username': 'myusername', 'j_password': 'mypassword'}
with requests.Session() as s:
a = s.get(login_page_url)
print(s.cookies)
b = s.get(login_page_url2, params = payload2)
c = s.get("https://or.bullionvault.fr/secure/view_orders_xml.do")
print(a) #output status 200
print(b) #output status 200
print(c) #output status 200
print(c.text) #output HTML DOM
但是我仍然有我的问题:最后一个请求响应是登录页面的htmldom。在
解决方案:
Bullionvault将其API更新为2.0版。 我的代码中也缺少一些参数。在
login_page_url = "https://or.bullionvault.fr/secure/login.do"
login_page_url2 = "https://live.bullionvault.com/secure/j_security_check"
payload2 = {'j_username': 'myusername', 'j_password': 'mypassword'}
payload3 = {'confirmed': 'true'}
payload4 = {'simple': 'true'}
with requests.Session() as s:
a = s.get(login_page_url)
b = s.post(login_page_url2, data = payload2)
c = s.get("https://live.bullionvault.com/secure/api/v2/view_orders_xml.do", params = payload3)
d = s.get("https://live.bullionvault.com/secure/api/v2/view_balance_xml.do", params = payload4)
您是否将JSESSIONID与后续请求一起传递?在文档中,它清楚地提到,登录后,您将获得一个JESSIONID
Please note that our webservers use a session cookie to track your login session (JSESSIONID)
你应该把他们传给头球
相关问题 更多 >
编程相关推荐