Coldfusion 在CFHTTP cookie上循环和设置cookie问题
我试图循环来自cfhttp的cookie,但它没有显示正确的结果 下面是我的代码Coldfusion 在CFHTTP cookie上循环和设置cookie问题,coldfusion,Coldfusion,我试图循环来自cfhttp的cookie,但它没有显示正确的结果 下面是我的代码 <cfhttp url="#address#" method="get" throwOnError="Yes" resolveurl="false"> <cfset cookies = cfhttp.responseHeader['Set-Cookie'] /> <cfloop collection="#cookies#" item="k"> <cfset
<cfhttp url="#address#" method="get" throwOnError="Yes" resolveurl="false">
<cfset cookies = cfhttp.responseHeader['Set-Cookie'] />
<cfloop collection="#cookies#" item="k">
<cfset temp = REReplace(k, ";.*", "")>
<cfset cookieName = listfirst(temp,'=')>
<cfset cookievalue = listlast(temp,'=')>
<cfhttpparam type="cookie" name="#cookieName#" value="#cookievalue#">
</cfloop>
<cfhttpparam type="Header" name="Accept-Encoding" value="deflate;q=0">
<cfhttpparam type="Header" name="TE" value="deflate;q=0">
</cfhttp>
第二次尝试:
从一个电话中,我得到了cookies,我将它们放在如下结构中:
<cfset cookies = cfhttp.responseHeader['Set-Cookie'] />
<cfset cookieStruct=StructNew()>
<cfloop collection="#cookies#" item="key">
<cfset cookieKeyAndValue = REReplace(key, ";.*", "")>
<cfset cookieKey = listfirst(cookieKeyAndValue,'=')>
<cfset cookieValue = listlast(cookieKeyAndValue,'=')>
<cfset StructInsert(cookieStruct,cookieKey,cookieValue)>
</cfloop>
<cfdump var="#cookieStruct#" abort>
<cfhttp url="#addr#" method="get" throwOnError="Yes" resolveurl="false" result="objAddress">
<cfloop collection="#cookieStruct#" item="key">
<cfhttpparam type="cookie" name="#key#" value="#cookieStruct[key]#">
</cfloop>
<cfhttpparam type="Header" name="Accept-Encoding" value="deflate;q=0">
<cfhttpparam type="Header" name="TE" value="deflate;q=0">
</cfhttp>
这给了我一个错误:
无效的集合ASPJGASGHSG=KBHFPN;路径=/。必须是有效的结构或COM对象。循环错误
cfhttpget将结果返回到CFHTTP数据结构中。将循环放在CFHTTP open/close标记中会导致尝试在不存在的内容上进行循环
<cfhttp url="#address#" method="get" throwOnError="Yes" resolveurl="false" >
<cfhttpparam type="Header" name="Accept-Encoding" value="deflate;q=0">
<cfhttpparam type="Header" name="TE" value="deflate;q=0">
</cfhttp>
<cfset cookies = cfhttp.responseHeader['Set-Cookie'] />
<cfloop collection="#cookies#" item="k">
<cfset temp = REReplace(k, ";.*", "")>
<cfset cookieName = listfirst(temp,'=')>
<cfset cookievalue = listlast(temp,'=')>
</cfloop>
我不确定您在这里尝试做什么,但是如果有多个cookie,您将需要在循环中使用不同的代码 你的描述很模糊。到底发生了什么?结果与您预期的有什么不同?您采取了哪些调试步骤?编辑错误消息看起来非常清楚。返回值ie cfhttp.responseHeader['Set-Cookie']不是结构。你需要这样做。