omo postar dados JSON para API remota usando o Coldfusion CFHTTP
Tenho certeza de que estou estragando tudo, mas cheguei até aqui com a ajuda de outros usuários do Stack Overflow, então, até agora, obrigad
Preciso POSTAR dados JSON para uma API remota. Obviamente, não posso usar o jQuery devido a problemas de SOP, e a API remota não suporta JSONP.
Também não quero ter que usar nenhum tipo de proxy para contornar as limitações do SO
Por documentos da API http: //myemma.com/api-docs), esta é a formatação dos dados que eles esperam (os dados de solicitação e resposta são transferidos como JSON):
POST https://api.e2ma.net//123/members/add
{
"fields": {
"first_name": "myFirstName"
},
"email": "[email protected]"
}
E foi isso que eu criei até agora, mas continuo recebendo erros "incapaz de analisar JSON" da API remota:
<cfset fields[name_first]="#SerializeJSON( "myFirstName" )#" />
<cfset form.email="#SerializeJSON( "[email protected]" )#" />
<cfhttp
url="https://api.e2ma.net/123/members/add"
method="POST"
username="username"
password="pssword"
useragent="#CGI.http_user_agent#"
result="objGet">
<!--- add email --->
<cfhttpparam
type="formfield"
name="email"
value='#form.email#'
/>
<!--- add field: name_first --->
<cfhttpparam
type="formfield"
name="fields"
value='#fields[name_first]#'
/>
</cfhttp>
<cfoutput>#objGet.FileContent#</cfoutput>
Novamente, certamente estou manipulando a estrutura dos meus dados de alguma forma, mas não tenho certeza do que estou fazendo de errado, principalmente em relação à configuração correta do "fields": {"first_name": "myFirstName"} estrutura / matriz.