我想用Python从API获取数据。API文档用CURL和Ruby给出了示例。如果您可以发布关于如何使用Python执行以下操作的代码片段,我将非常高兴。在
要获取身份验证令牌:
卷曲示例:
curl -X POST -d "{\"username\" : \"user@sample.com\", \"password\":\"sample\"}" http://api.sample.com/authenticate
Ruby示例:
^{pr2}$验证后,要获取数据:
卷曲示例:
curl http://api.sample.com/data/day/2011-02-10/authToken/80afa08-1254-46ee-9545-afasfa4565
和Ruby代码:
require 'rubygems'
require 'rest_client'
require 'json'
class ReportingClient
attr_accessor :auth_token, :base_url
def initialize(base_url)
@base_url = base_url
end
def authenticate(username,password)
login_data = { 'username' => username, 'password' => password}.to_json
response = RestClient.post "#{@base_url}/authenticate", login_data, :content_type => :json, :accept => :json
@auth_token = JSON.parse(response)['output']
end
def get_report(start_date, end_date)
response = RestClient.get "#{@base_url}/data/day/#{day}/authToken/#{auth_token}"
JSON.parse(response)
end
end
client = ReportingClient.new('http://api.sample.com:20960')
client.authenticate('user@sample.com','sample')
results = client.get_report('2011-02-10')
puts JSON.pretty_generate(results)
谢谢。。在
附言:我知道pycurl。但我不确定我是否真的需要它。我很乐意使用Python本机库。Pycurl可能对我来说太过分了。在
我是Python新手,在阅读了'urllib2'文档并尝试了一些示例之后,我找不到正确的解决方案。在
这不是一个端口,但看起来您正在发送一个POST,然后获取授权令牌,然后使用它发送一个GET请求。 这是基于我的理解。在
在阅读了urllib2文档之后,您到底不明白哪一部分? 我不知道我的Ruby,但从它的外观来看,它只需要发送json格式的GET-request和POST请求并解析响应。对于simplejson和urllib2,这一点非常简单。在
相关问题 更多 >
编程相关推荐