coldfusion - получение опубликованных данных JSON и их анализ - PullRequest
8 голосов
/ 25 апреля 2011

Это первый раз, когда я пишу cfc, который будет собирать данные JSON с внешнего веб-сервера, который будет публиковать информацию.

Я работаю с новым сервисом, который можно настроить на отправкунам через HTTP POST к указанному мной URL-адресу JSON-пакет информации о неудачных транзакциях.

Я решил настроить CFC с удаленным доступом для сбора и десериализации данных JSON во что-то, что мы могли бы затем использоватьна.Однако я не могу понять, как настроить функцию в CFC для получения данных?

Я установил URL-адрес на www.mydomain.com/com/processRemote.cfc?method=catchJSONdata&ReturnFormat=json

Чтобы проверить это, я настроил простую тестовую страницу, на которой должны публиковаться данные сеанса:

<cfhttp 
  result="result"
  method="post" 
  url="http://www.mydomain.com/com/processRemote.cfc?method=catchJSONdata&ReturnFormat=json">

    <cfhttpparam type="header" name="content-type" value="application/json"/>
    <cfhttpparam type="body" value="#serializeJSON(session)#"/>

Так, где я потерян, каково имя cfargument, которое у меня будет в моем cfc, в котором я первоначально буду хранить данные JSON?У меня нет контроля над удаленной службой, которая отправляет данные JSON.

Спасибо,

1 Ответ

11 голосов
/ 25 апреля 2011

Если вы читаете контент из тела HTTP-запроса, вы не найдете его в области аргументов - вам нужно извлечь его непосредственно из запроса:

if (cgi.content_type EQ "application/json")
{
    myData = deserializeJSON(ToString(getHTTPRequestData().content));
}

Я использую инфраструктуру Taffy [1] для создания таких сервисов (Отказ от ответственности: я действительно помог написать часть инфраструктуры, которая обрабатывает этот случай).

[1] http://atuttle.github.com/Taffy/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...