我正在尝试使用这篇文章:https://github.com/Licensario/licensario-rest-protocol/blob/master/rest-api.md#feature-usage
所以我写道:
## get request
feature_allocation_req = Net::HTTP::Get.new("/api/v1/users/external/#{user_id}/features/VIEW_TASKSed8e919e60/alloc?paymentPlanId=SUBSCRIPTI33dbf5e82a");
## add the headers
feature_allocation_req.add_field('ISV_API_KEY', 'bcffa3335a9068ab37ad51a68b4b47ea72f32a49c8f0b4f299a629edad04cdc3');
feature_allocation_req.add_field('ISV_API_SECRET', '14c990f3d4ee6354ee86fffdb057b3584f885c0d79cd3b354123e1b9acdc2227');
## start the get request
feature_allocation_result = nil
Net::HTTP.start("localhost", 3000) {|http|
feature_allocation_result = http.request(feature_allocation_req)
}
## print the number of the response (I got 200 - OK)
puts feature_allocation_result.code
## deserialize JSON objects
feature_allocation_parameters = Yajl::Parser.parse(feature_allocation_result.body);
total_parameter = feature_allocation_parameters["total"];
used_parameter = feature_allocation_parameters["used"];
available_parameter = feature_allocation_parameters["available"];
## print them
puts "***********************"
puts total_parameter, used_parameter, available_parameter
但它什么都没打印。我写错了什么? (我认为如果我遇到问题,可以在“反序列化JSON对象”的步骤中找到问题,但我尝试了:JSON.parse
并且它也不起作用)..
任何帮助表示感谢。
答案 0 :(得分:1)
我要尝试的第一件事是打印feature_allocation_result.body
的值。这将允许我确定对方是否发送正确的JSON并且错误是我的。有时我得到一个HTML错误页面而不是JSON,因为我的请求是错误的。打印body
有助于澄清这一点。
既然你已经这样做了,我们就会发现该服务会向你发送有效的JSON,但所有值都是零。
{"total":null,"used":null,"available":null}
我们的解析没问题(但如果它更复杂的话,也可能不是这样)。无论如何,现在我们必须找出服务为什么不向我们发送我们期望的数据。