我编写了一个简单的应用程序来测试RESTful API(由会计应用程序提供)。我已经在Firefox中安装了“Poster”来测试“GET和POST”XML,并且API正在按预期运行。我写了一个简单的“GET”测试页面,从测试CF8应用程序中调用API,API返回了我预期的结果。我无法在测试CF8应用程序中进行POST。
我已将以下内容插入到我的application.cfm中:
<!--- fix for HTTPS connection failures --->
<cfif NOT isDefined("Application.sslfix")>
<cfset objSecurity = createObject("java", "java.security.Security") />
<cfset objSecurity.removeProvider("JsafeJCE") />
<cfset Application.sslfix = true />
</cfif>
这是失败的代码:
<cfprocessingdirective suppressWhiteSpace = "Yes">
<cfxml variable="customerxml">
<?xml version="1.0" encoding="UTF8" standalone="yes"?>
<dataentry>
<interface name="Customer Edit"></interface>
<entity>
<attribute name="Customer Code">REP003</attribute>
<attribute name="Customer Name">Repsol3</attribute>
<attribute name="Address Line 1">El House</attribute>
<attribute name="Address Line 2">El Street</attribute>
<attribute name="Address Line 3">El Town</attribute>
</entity>
</dataentry>
</cfxml>
</cfprocessingdirective>
<cfhttp
method="post"
url="https://***/wsapi/1.1/dataentry/"
username="***"
password="***"
charset="utf-8">
<cfhttpparam type="header" name="Accept-Encoding" value="*" />
<cfhttpparam type="header" name="TE" value="deflate;q=0" />
<cfhttpparam type="header" name="Content-Type" value="application/xml" />
<cfhttpparam name="XML_Test" type="xml" value="#customerxml#">
</cfhttp>
关于这个主题发表了很多内容,我已经尝试了大部分内容,但有些帖子甚至比我的版本更老!任何最新的帮助表示赞赏。
答案 0 :(得分:2)
来自评论
使用<cfhttp>
接收连接失败时,我尝试的第一件事是验证您是否可以使用ColdFusion服务器中的浏览器导航到该URL。如果该请求不起作用,那么它也无法从ColdFusion调用中运行。在继续之前先解决该问题。
使用SSL(HTTPS)连接到安全站点时的另一个常见问题是证书不受信任或ColdFusion(Java)不知道。在这些情况下,您需要将其证书导入到用于ColdFusion的Java密钥库中。
答案 1 :(得分:0)
以下是有关如何安装Java库未安装的自签名证书或其他ssl证书的详细步骤说明。
http://www.coldfusioncookbook.com/entries/How-Do-I-Consume-SSL-Encrypted-Content-with-CFHTTP.html
帮了我1000次。 马特