cfhttp调用在回调中接管登录屏幕

时间:2014-12-02 17:54:38

标签: coldfusion

我正在使用cf10进行简单的cfhttp调用。

我提取的网址是直的,我只是将该网址粘贴到地址栏中,它会显示结果。

我在cfhttp调用中尝试的相同链接,请注意以下链接是虚拟

http://www.fakeurl.net/login2.asp?id=myid&password=mypasswd&t=page.asp&pe=000

现在我的cfhttp电话:

<cfset urlAddress="#trim(link)#"> 
    <cfhttp url="#urladdress#" method="GET" resolveurl="No" throwOnError="Yes"/>
    <cfoutput>#CFHTTP.FileContent#</cfoutput>

我接受了阿德里安的建议,这是我的下一次尝试:

<cfset address = "http://www.fakeurl.net/login2.asp">
<cfhttp url="#address#" method="POST" throwOnError="Yes" result="objGet" useragent="#CGI.http_user_agent#">
        <cfhttpparam type="Header" name="Accept-Encoding" value="deflate;q=0">
        <cfhttpparam type="Header" name="TE" value="deflate;q=0">
        <cfhttpparam type="url" name="id" value="myid">
        <cfhttpparam type="url" name="password" value="mypasswd">
        <cfhttpparam type="url" name="t" value="page.asp">
        <cfhttpparam type="url" name="rp" value="000">
    </cfhttp> 
    <cfoutput>#objGet.FileContent#</cfoutput>

现在它给了我

  

302

错误

2 个答案:

答案 0 :(得分:0)

您需要的基本内容:

<cfhttp 
     url="http://www.fakeurl.net/login2.asp?id=myid&password=mypasswd&t=page.asp&pe=000" 
     method="get" 
     resolveurl="yes">

<cfdump var='#cfhttp#' abort>

哪个可以解决。

我想你会在我添加的<cfdump>内找到你正在寻找的东西。然后能够挑选出你需要的某些东西......

然后,您可以将其解析为变量并修剪它并从那里做其他事情。

答案 1 :(得分:0)

re:“接管登录屏幕” - 该链接在您的浏览器中有效,因为您已登录该站点并拥有活动会话。通过CFHTTP,没有有效的会话。这是与您的浏览器会话无关的请求,因此URL会重定向到登录屏幕。您必须将ID / PWD作为请求的一部分(不是通过查询字符串参数)传递,或者获取会话令牌,该会话令牌可以是您获取该内容的请求的一部分。