我想从上面的URL获取响应数据并将值存储在数据库中。
URL:
`http://xxxx.com/delivery_reports?data=%7B%22requestId%22%3A%22546b384ce51f469a2e8b4567%22%2C%22numbers%22%3A%7B%22917566559950%22%3A%7B%22date%22%3A%222014-11-18+17%3A45%3A59%22%2C%22status%22%3A1%2C%22desc%22%3A%22DELIVERED%22%7D%7D%7D`
控制器:
def create
@delivery_report = DeliveryReport.new(delivery_report_params)
@response = HTTParty.get('http://xxxx.com/delivery_reports')
hash = JSON.parse @response
puts hash
respond_to do |format|
if @delivery_report.save
format.html { redirect_to @delivery_report, notice: 'Delivery report was successfully created.' }
format.json { render :show, status: :created, location: @delivery_report }
else
format.html { render :new }
end
end
end
它显示JSON :: ParserError(757:'错误的意外令牌。
答案 0 :(得分:1)
您正在尝试使用JSON解析无效的JSON文件。服务器的响应是HTML。
尝试删除此行:
hash = JSON.parse @response
应该工作!
如果您需要有关所请求页面的任何信息,请使用nokogiri gem来解析HTML而不是JSON.parse。
[编辑]
您可以尝试在URL上使用/delivery_reports.json
从服务器检索为有效的JSON。