将curl转换为coldfusion cfhttp

将curl转换为coldfusion cfhttp,curl,coldfusion,http-status-code-406,Curl,Coldfusion,Http Status Code 406,我打了个卷发电话,效果很好: curl-X POST-H'内容类型:application/xml'-H“X-ApiVersion:1.0”-H“X-AccessToken:[api token]“-d'[xml]”https://www.API.com 我试图将其转换为coldfusion,但服务器在我身上回击了一个406错误。我试着把我能想到的一切都投入到这个问题上,但都没能奏效。感谢您的帮助!以下是CF: <cfhttp url="#APIURL#" method="POST" re

我打了个卷发电话,效果很好:

curl-X POST-H'内容类型:application/xml'-H“X-ApiVersion:1.0”-H“X-AccessToken:[api token]“-d'[xml]”https://www.API.com

我试图将其转换为coldfusion,但服务器在我身上回击了一个406错误。我试着把我能想到的一切都投入到这个问题上,但都没能奏效。感谢您的帮助!以下是CF:

<cfhttp url="#APIURL#" method="POST" result="activity">
    <cfhttpparam type="header" name="Content-Type" value="application/xml">
    <cfhttpparam type="header" name="X-AccessToken" value="#accesstoken#" />
    <cfhttpparam type="header" name="X-ApiVersion" value="1.0" />   
    <cfhttpparam type="body" encoded="false" value="#trim(request.xml)#" />
</cfhttp>

(摘自评论)

对于grins,尝试向cfhttp调用添加一个“Accept”头。我在某个地方看到,curl默认情况下可能会添加一个accept-all头:
accept://*
。基于这一点,这可能与此相关

406不可接受
请求的资源只能根据发送的Accept标头生成不可接受的内容 在请求中

如果不是,最好的办法是查看原始请求转储()并查看有什么不同

更新:

CraigL在评论中确认,添加“接受”所有标题解决了该问题。在此处发布完整代码,使解决方案更可见:

<cfhttp url="#APIURL#" method="POST" result="activity">
    <cfhttpparam type="header" name="Content-Type" value="application/xml">
    <cfhttpparam type="header" name="X-AccessToken" value="#accesstoken#" />
    <cfhttpparam type="header" name="X-ApiVersion" value="1.0" />   
    <cfhttpparam type="header" name="Accept" value="*/*"> 
    <cfhttpparam type="body" encoded="false" value="#trim(request.xml)#" />
</cfhttp>


我看不出任何明显的错误。尝试一些低技术的调试。在CF服务器上创建转储请求的测试页。从curl和cfhttp调用该页面,看看请求有什么不同。对于grins,尝试向cfhttp添加一个“Accept”头。我看到curl可能会添加一个Accept:/header。根据错误代码,这可能与此相关。如果没有,最好的办法是查看原始请求转储(如上所述),看看有什么不同。尝试
而不是
解决!多亏了利!成功了。感谢你的回答!很高兴这有帮助。我将把它写下来,以结束这条线。