【发布时间】:2015-02-27 15:35:41
【问题描述】:
我的 rails 应用程序需要向一个 php 应用程序发送一些数据,该应用程序需要一个 POST 调用。 我使用以下代码:
uri = URI.parse(apiUrl)
req = Net::HTTP::Post.new(uri.to_s, initheader = {'Content-Type' =>'application/json'})
req.basic_auth(api_key, token)
req.set_form_data({"action" => action, "data" => data})
http = Net::HTTP.new(uri.host, uri.port)
response = http.request(req)
其中 data 是转换为 json 的哈希:
data = {
:key1 => val1,
:key2 => val2
}.to_json
(它是一个嵌套散列,即一些值也是散列)
我的问题是 php 应用程序在每个引号前收到 4 个反斜杠:
$data_json = $_POST['data'];
error_log($data_json);
在错误日志中我看到:
'{\\\\"key1\\\\":val1,\\\\"key2\\\\":\\\\"val2\\\\"}'
看起来 Rails 添加了其中一个,但即使我将其删除并用以下代码替换它:
a.gsub!(/\"/, '\'')
我仍然在 php 应用程序中得到许多反斜杠,因此无法将字符串转换为数组。
有什么想法吗??
【问题讨论】:
标签: php json ruby-on-rails-4 net-http