Coldfusion - 接收发布的 JSON 数据并解析它

发布于 2024-11-03 00:24:20 字数 775 浏览 1 评论 0原文

这是我第一次编写 cfc,该 cfc 将从发布信息的外部 Web 服务器捕获 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)#"/>

那么我迷失的是我在 cfc 中最初存储 JSON 数据的 cfargument 名称是什么?我无法控制发送 JSON 数据的远程服务。

谢谢,

This is the first time I'm writing a cfc that will catch JSON data from an external web server that would be posting information.

I'm working with a new service that can be set to send us, via HTTP POST to a URL I specify, a JSON packet of information regarding failed transactions.

I figured I'd setup a CFC with remote access to capture and deserialize the JSON data into something we could then act on. However, I can't figure out how to setup the function in the CFC to received the data?

I set the URL to www.mydomain.com/com/processRemote.cfc?method=catchJSONdata&ReturnFormat=json

To test it, I setup a simple test page that should post session data:

<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)#"/>

So where I'm lost is what's the cfargument name that I'd have in my cfc that I would initially store the JSON data in? I have no control over the remote service that would be sending the JSON data.

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

来世叙缘 2024-11-10 00:24:20

如果您正在从 HTTP 请求正文中读取内容,您将不会在参数范围中找到它 - 您需要直接从请求中提取它:

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

我使用 Taffy[1] 框架来构建这样的服务(免责声明:我实际上帮助了编写处理这种情况的框架部分)。

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

If you're reading content from the HTTP request body you wont find it in arguments scope - you'll need to extract it directly from the request:

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

I use the Taffy[1] framework for building services like this (Disclaimer: I actually helped write the part of the framework that handles this case).

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文