【问题标题】:Coldfusion CFHTTP PATCH MethodColdfusion CFHTTP PATCH 方法
【发布时间】:2021-08-19 18:24:48
【问题描述】:

我正在使用 cfhttp 和 Coldfusion 2021 对 API 进行基本 PATCH 方法调用。无论我尝试做什么,它都会将调用中的内容类型更改为 x-www-form-urlencoded 当它设置为使用 cfhttpparam 的应用程序/json。我试过 从另一个帖子添加这一行,没有效果。

<cfhttpparam type="CGI" encoded="false" name="Content_Type" value="application/json; charset=utf-8"<

我尝试将方法更改为 POST 并使用另一篇文章中的这一行。

<cfhttpparam type="header" name="X-HTTP-Method-Override" value="PATCH">

不管它仍然作为错误的内容类型发送什么,并且 api 忽略它作为结果,只是发回一个 200 OK,它收到了一个调用,但由于内容类型而没有更新数据。

我也尝试将正文作为变量和参数发送。结果一样。

有谁知道它为什么要切换内容类型或如何更正它?

这是我调用 API 的代码。

<cfhttp url="#loc.URLInsertID#"
        method="PATCH"
        timeout="999"
        result="loc.AssetPandaGetObjectDataUpdate">
        <cfhttpparam type="header" name="Accept" value="application/json" />
        <cfhttpparam type="header" name="Content-Type" value="application/json" />
        <cfhttpparam type="header" name="Mimetype" value="application/json" />
        <!--- <cfhttpparam type="CGI" encoded="false" name="Content_Type" value="application/json; charset=utf-8"> --->
        <!--- <cfhttpparam type="header" name="X-HTTP-Method-Override" value="PATCH"> --->
        <cfhttpparam type="header" name="Authorization" value="#Bearer#">
        <!--- <cfhttpparam type="body" name="body" value="#SerializeJSON(loc.bodyElements)#"> --->
        #SerializeJSON(loc.bodyElements)#
</cfhttp>

【问题讨论】:

    标签: coldfusion patch content-type cfhttp


    【解决方案1】:

    这确实是评论,但是太长了。

    关于这段代码

        <!--- <cfhttpparam type="body" name="body" value="#SerializeJSON(loc.bodyElements)#"> --->
        #SerializeJSON(loc.bodyElements)#
    

    您很可能希望使用body 方法。试着先让它在 Postman 上工作。通常从那里复制请求是直接的。

    【讨论】:

    • 这很奇怪,我在 Postman 中成功执行了调用并从他们的 api 获得了适当的响应。但是当我在 CF 中使用完全相同的格式时,它就不起作用了。它会从他们的 API 返回 200 OK,但它会改变我提到的内容类型,因此会被他们的 API 忽略。
    • 我很好奇您如何确定内容类型是问题所在,因为将代码的变体(type=body)发布到另一个 .cfm 脚本并转储标题显示预期我的内容类型,application-json。
    • 看来问题出在你身上了。从 trycf.com 也可以正常工作。测试:trycf.com/gist/a18299d9bf722505be3709b734902859/… 结果:webhook.site/#!/88bf3bc8-dc22-4146-8471-ccd0ea209d32/…
    猜你喜欢
    • 2016-10-27
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多