【问题标题】:cfhttp and cfhttpparam in ColdFusionColdFusion 中的 cfhttp 和 cfhttpparam
【发布时间】:2018-10-31 14:21:36
【问题描述】:

我有一些 XMl 数据,我想使用 XML 数据发布到调度程序作业,因此使用 cfhttp 和 cfhttpparam。但是由于运行此代码后的原因,我无法在我的一个站点中安排工作。使用表单域、url 和 xml 尝试了所有选项,但没有成功。我正在使用 cfsavecontent 将所有数据保存到一个 xml 变量中,并使用该变量传递给 cfhttparam 值。不知道我在这里做错了什么。下面是代码

<cfsavecontent variable="getAllValues">
    <start_job job="/cf/ecs/get_ecspseg1_data">
        <params>
        <param name="1_script" value="#script#" />
        <param name="2_login" value="#login#"/>
        <param name="3_customer" value="#customer#"/>
        <param name="4_account" value="#account#"/>
        <param name="5_begdate" value="#begdate#"/>
        <param name="6_enddate" value="#enddate#"/>
        </params>
    </start_job>
</cfsavecontent>

<cfhttp url="http://ecs" port="4444" username="test" authType = "BASIC" password="testing*1" method="post">
    <cfhttpparam type="xml" name="testing" value="#ToString(getAllValues)#"/>
</cfhttp>

这是更新后的代码:

<cfsavecontent variable="getAllValues">
    <start_job job="/cf/smartecs/get_pseg1_data">
        <params>
        <param name="1_script" value="#script#" />
        <param name="2_login" value="#login#"/>
        <param name="3_customer" value="#customer#"/>
        <param name="4_account" value="#account#"/>
        <param name="5_begdate" value="#begdate#"/>
        <param name="6_enddate" value="#enddate#"/>
        </params>
    </start_job>
</cfsavecontent>

<cfhttp url="http://10.xxx.xxx.xxx" port="4444" username="myusername" authType = "BASIC" password="mypassword" method="post" >
    <cfhttpparam type="header" name="Content-Type" value="application/octet-stream">
    <cfhttpparam type="body" name="testing"  value="#getAllValues#"/>
</cfhttp>

【问题讨论】:

  • CFSaveContent 中的内容是“CFOutputted”吗?如果没有,则不会使用您想要的值。 (您可能还必须将日期格式化为可接受的格式,或者可以使用默认的类似 ODBC 的格式。)
  • 是的,它周围环绕着
  • 我只传递脚本名称,其余所有值都是默认值或空值
  • 您可能需要将 XML 字符串的“类型”更改为“正文”,并可能设置“内容类型”标头。也许也可以通过“内容长度”。根据 ColdFusion 的版本(您没有提到),如果较旧,请将标题“TE”设置为“deflate;q=0”。
  • 用建议的代码更新了代码。还是不行

标签: coldfusion cfhttp cfhttpparam


【解决方案1】:

当使用不同的端口号时,我们甚至需要在 URL 的末尾保留 /。当我将 / 保留在 URL 的末尾时,它就像一个魅力。 ColdFusion 不接受 URL 中的 :。

【讨论】:

  • 原始网址中的“:”在哪里?
  • 当使用端口号时,我们会将 URL 写为10.xx.xx.xx:portNumber。因为我们有一个 Portnumber 属性,所以我们不能在 URL 中包含它。
  • 明白了。在原始问题中没有看到这一点。你的映射是ecs/ 而不是ecs?使用 IP 地址时,您还必须使用/ 吗?我认为不需要/。 :-/
  • 是的,它是必需的。当 URL 有端口号时,我们需要在 URL 旁边保留 / 。虽然这很奇怪 ..
猜你喜欢
  • 1970-01-01
  • 2014-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-27
  • 2014-06-19
相关资源
最近更新 更多