我正在尝试将加载的图像(jpg)转换cfhttp为二进制数据.我无法使用,cffile action="readBinary"因为它不是本地文件.
有没有办法输出一个CFHTTP电话的原始html ?我试图了解一些标头身份验证信息是如何发生的.
我对浏览器插件或代码更新持开放态度,无论哪个帮助我看看cfhttp通话过程中发生了什么.
例如:
<cfhttp method="get" url="https://test-ows01.mywebsite.com/criminal_api//1.0/service/requests" result="orderList">
<cfhttpparam type="HEADER" name="Authorization" value="Basic #ToBase64("bearer:4EC8B09D3F911764B1DCD3EFA38DFB31")#">
</cfhttp>
Run Code Online (Sandbox Code Playgroud)
上面的调用在发生时会是什么样子.
我正在使用ColdFusion 8.
我正在向远程服务器发送CFHTTP帖子.远程站点查看了他们的日志,他们说我的代码正在执行POST,然后立即执行第二个GET请求.
这是我的代码(URL已被更改):
<cfhttp url="https://www.theurlofthesite.com" method="POST" port="443" resolveurl="yes" redirect="yes">
<cfhttpparam type="FORMFIELD" name="type" value="SALES">
<cfhttpparam type="FORMFIELD" name="account" value="10003">
<cfhttpparam type="FORMFIELD" name="Submit" value="Submit+Request">
</cfhttp>
<Cfoutput>#cfhttp.fileContent#</CFOUTPUT>
<cfdump var="#cfhttp#">
Run Code Online (Sandbox Code Playgroud)
有没有人知道为什么他们在我的POST后立即看到第二个GET请求?这会破坏会话而不是因为这个而正确地翻页(我们认为)
我绝对不会做GET,我只做一个POST.
谢谢,
丰富
我不知道它是否可能,但只是想询问我们是否可以cfhttp或任何其他东西来读取选定数量的数据而不是将整个文件放在CFHTTP.FileContent中.
我正在使用cfhttp并且只想从远程xml文件中读取最后两行(大约20个)并从一些文本文件中读取中间两行(大约7个).有没有什么方法可以读取特定数据而不是获取所有文件,因为它现在花了很多时间(约15-20秒).我只想减少.cfm页面的运行时间.有什么建议 ???
如何在ColdFusion 9中使用自签名证书通过HTTPS启用webservice调用?
根据文件,<cfhttp>应该工作,但怎么样<cfinvoke>?
如果我使用cfhttp,我还需要安装此处概述的证书吗?http://kb2.adobe.com/cps/400/kb400977.html
我尝试在cfinvoke中使用https,我得到了SSLPeerUnverifiedException: peer not authenticated例外.
谢谢
我有一个简单的cfhttp请求(登录)到SSL服务器:
<cfhttp url="https://www2.[domain].com/api/user/login" method="POST" port="443" >
<cfhttpparam type="formfield" name="username" value="[username]" >
<cfhttpparam type="formfield" name="password" value="[password]" >
</cfhttp>
Run Code Online (Sandbox Code Playgroud)
请求在开始之前失败,ColdFusion服务器说:
I/O异常:peer未经过身份验证
两个开发环境都非常有效.他们接收登录会话,然后将其交给收集器进程,该进程成功地点击远程Web服务以获取数据.
在我花了一天时间尝试将正确的证书放入ColdFusion商店后,我有一个明智的想法,即将它们与工作开发环境进行比较.我看着他们(keytool -list),他们是完全相同的.
既然明显是免除了我留下的问题是双重的:
我有一些代码试图创建100个线程http调用.它似乎被限制在40左右.
当我做threadJoin时,我只能从我的http调用获得38到40组结果,尽管循环是从1到100.
// thread http calls
pages = 100;
for (page="1";page <= pages; page++) {
thread name="req#page#" {
grabber.setURL('http://site.com/search.htm');
// request headers
grabber.addParam(type="url",name="page",value="#page#");
results = grabber.send().getPrefix();
arrayAppend(VARIABLES.arrResults,results.fileContent);
}
}
// rejoin threads
for (page="2";page <= pages; page++) {
threadJoin('req#page#',10000);
}
Run Code Online (Sandbox Code Playgroud)
CF可以创建的线程数有限制吗?是否与在后台运行的Java有关?或者它可以不处理那么多的http请求?
除了线程HTTP调用之外,还有一个更好的方法吗?
我正在集成iCIMS的REST API,发现一些REST API调用需要http动词PATCH.但是,似乎ColdFusion 10不支持这一点.有没有办法解决?
我试图使用cfhttp拉出一个页面来解析信息.我正在调用的页眉是:
内容编码:gzip
连接:保持活力
内容长度:19066
服务器:IBM_HTTP_Server
变化:接受编码,用户代理
内容 - 语言:en-US
Cache-Control:no-cache ="set-cookie,
设置COOKIE2"
内容类型:
text/html的;字符集= ISO-8859-1
我将charset设置为ISO-8859-1但是我在FileContent中得到以下内容(下面只显示了一个小样本,但我认为它可以指出).
EðÑq·Oã?·Ì\ZóL¯þ'Vú5ðb䣿æ_HÉÒñQãO\Çþãë85ÁÜà±°ùÖ}&bßý?, u?2SùQyk5g?UÛ3Ѹfã×ARÃi-iûRã_òCA¿-ß.
"b /¯ßíWÝÆ´}w~,°iøÜCáÇþ@ÃZ5¤ïsÁ8½°ì* ZÜéjOÝK/Ë4§ÈG5×ä*¬6ÚwÇ0]ã:àÑþé¬G"ÅÁl/t° jlá»5¶&¯lìYìºØ'yDð½|#ý<ñìTé%¾ï¬ùƪx¶}«±o9»ë¼ÂÆÒï'w8Y?÷ðxsllû6íqüGÞsÜóÀx·ªk®XºàåZ{íÁ½åo÷mbq¥ÝÃ8M
我尝试了其他字符集,并考虑gzip编码导致问题,但我不确定如何测试是否是问题.任何建议或帮助都会受到极大的重视.
以下是我的代码
<cfhttp
METHOD="get"
throwonerror="yes"
CHARSET="ISO-8859-1"
URL="http://www.cars.com/for-sale/searchresults.action?sf1Dir=DESC&prMn=1&crSrtFlds=stkTypId-feedSegId-pseudoPrice&rd=100000&zc=44203&PMmt=0-0-0&stkTypId=28881&sf2Dir=ASC&sf1Nm=price&sf2Nm=miles&feedSegId=28705&searchSource=UTILITY&pgId=2102&rpp=10">
<cfhttpparam type="Header" name="Accept-Encoding" value="deflate;q=0">
<cfhttpparam type= "Header" name= "TE" value= "deflate;q=0" >
</cfhttp>
<cfset listings = #cfhttp.FileContent#>
<cfoutput>
#listings#
</cfoutput>
Run Code Online (Sandbox Code Playgroud)
我也尝试了标题:
<cfhttpparam type="Header" name="Accept-Encoding" value="*">
<cfhttpparam type= "Header" name= "TE" value= "deflate;q=0" >
Run Code Online (Sandbox Code Playgroud)
并尝试删除'Accept-Encoding'标题并离开TE.
更新: 我仍然没有想到它,但我找到了一些可能有助于我帮助我的东西.当我使用我的测试php服务器在同一页面上运行file_get_contents并且它工作正常时,如果我运行相同的cfhttp代码来调用调用页面的php页面我需要它工作得很好.感谢您的建议到目前为止.
例如,我有以下代码:
<cfhttp url="FileURL" method="get" result="HTTPResult" timeout="5" />
Run Code Online (Sandbox Code Playgroud)
我想这样做:
<cfoutput>
#HTTPResult.ResponseHeader.content-type#
</cfoutput>
Run Code Online (Sandbox Code Playgroud)
但是,ColdFusion会将破折号-视为运算符,并尝试从"类型"中减去变量"HTTPResult.ResponseHeader.content",并且都不存在.有没有直接的方法来访问"内容类型"变量或我是否需要跳过箍来从标头变量中取出它?