Моему приложению 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)
Где данные представляют собой хеш, преобразованный в json:
data = {
:key1 => val1,
:key2 => val2
}.to_json
(это вложенный хеш, т.е. некоторые значения тоже хэш)
Моя проблема в том, что приложение php получает 4 обратной косой черты перед каждой кавычкой:
$data_json = $_POST['data'];
error_log($data_json);
и в журнале ошибок я вижу:
'{\\\\"key1\\\\":val1,\\\\"key2\\\\":\\\\"val2\\\\"}'
Похоже, рельсы добавляют один из них, но даже если я удалю его и заменю следующим кодом:
a.gsub!(/\"/, '\'')
Я все еще получаю много обратной косой черты внутри приложения php, поэтому не могу преобразовать строку в массив.
Есть идеи??