Estoy intentando usar Ruby on Rails para comunicarme con la API de Salesforce. Puedo buscar datos con facilidad pero tengo problemas para publicar datos en el servidor. Estoy usando HTTParty como por mensaje de Quinton Wall aquí:Cambiar el tipo de cuerpo a JSON mediante HTTParty
pero todo lo que parecen ser capaces de llegar desde el servidor de la fuerza de ventas es el error que estoy presentando el cuerpo como html
{" mensaje "=>" MediaType de 'application/x-www-form-urlencoded' no es compatible con este recurso", "errorCode"=> "UNSUPPORTED_MEDIA_TYPE"}
el código responsable parece:
require 'rubygems'
require 'httparty'
class Accounts
include HTTParty
format :json
...[set headers and root_url etc]
def self.save
Accounts.set_headers
response = (post(Accounts.root_url+"/sobjects/Account/", :body => {:name => "graham"}.to_json))
end
end
Alguien tiene una idea de por qué el cuerpo debería publicarse como html y cómo cambiar esto para que definitivamente sea tan rápido como para que Salesforce no lo rechace.
Cualquier ayuda sería apreciada. vivas
aplausos. He encontrado que si simplemente agrego los encabezados de línea 'Content-Type' => "application/json" encima de la solicitud, esto parece ser el truco también. Solo debe establecerse por defecto en html aunque el cuerpo esté configurado como json. gracias por su ayuda – GrahamJRoy
¿es posible que la llamada a_json la confunda con el formato del cuerpo? los otros ejemplos que vi no hicieron eso. – superfell
interesante. Obtengo un error js parse si lo dejo: {"message" => "Token no reconocido 'naegaa': esperaba 'null', 'true' o 'false' en [line: 1, column: 23]", "errorCode" => "JSON_PARSER_ERROR"} – GrahamJRoy