1
我有一个android应用程序将数据导出到rails服务器。当我使用Rails 3时,一切都很好,很有用。但在轨道4的服务器接收,而不是内容的只有以下参数:Rails 4没有收到http发布内容,但在Rails 3中工作
{"action"=>"export", "controller"=>"trainings"}
内容由以下发送:
HttpPost httpPost = new HttpPost(link);
String xmlFile = createXml(locationList);
StringEntity entity = new StringEntity(xmlFile, "UTF-8");
httpPost.setEntity(entity);
httpPost.addHeader("Content-Type", "application/xml");
httpClient.execute(httpPost);
并收到由滑轨用下面的代码:
begin
if !params[:training].nil? && !params[:training][:location].nil? && !params[:training][:datetime].nil?
locations = params[:training][:location]
if locations.count > 0
training = Training.create! created_at: Time.at((params[:training][:datetime].to_i/1000))
locations.each do |xml_location|
if !xml_location["latitude"].nil? && !xml_location["longitude"].nil?
Location.create! latitude: xml_location["latitude"], longitude: xml_location["longitude"], training_id: training.id
end
end
end
end
rescue TimeoutError => e
end
身体的一个例子是以下xml:
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<training>
<datetime>1409332572032</datetime>
<location>
<longitude>-122.084095</longitude>
<latitude>37.422005</latitude>
</location>
<location>
<longitude>-122.084095</longitude>
<latitude>47.422005000000006</latitude>
</location>
<location>
<longitude>-132.08409333333333</longitude>
<latitude>47.422005000000006</latitude>
</location>
<location>
<longitude>-142.08409333333333</longitude>
<latitude>47.422005000000006</latitude>
</location>
</training>
尽管我搜索了Rails 3到4的变化,但我找不到任何可能导致此行为更改的内容。
试图以应用解决方案只是引发以下错误: 开始发表于2014年8月30日14时17分32秒+0200 处理“/导出”为127.0.0.1通过TrainingsController#导出为HTML 完成400 Bad Request in 0ms ActionController :: ParameterMissing(param丢失或者值为空:训练): app/controllers/trainings_controller.rb:57:in'training_params' app/controllers/trainings_controller.rb:21:in 'export' – flp 2014-08-30 12:18:39
我可以看到POST数据的样子吗?看起来你没有发布“训练”参数? – mask8 2014-08-30 19:02:23
我看起来像rails现在正在删除http post的数据,因为在Rails 3中它没有问题。帖子数据是:{“action”=>“导出”,“控制器”=>“培训”},我用training_params.inspect得到它,training_params是params.permit! – flp 2014-08-30 22:08:00