3

の内容を読む方法を理解しようとしていcfhttp.responseHeaderます。応答でいくつかの Cookie を送信する Web サイトにアクセスしようとしています。応答からそれらを抽出する必要があります。次に、今後のすべてのリクエストで Cookie 値を送信します。以下のコードを使用しようとしました:

<cfloop collection = #cfhttp.responseHeader# item = "httpHeader">
  <cfset value = cfhttp.responseHeader[httpHeader]>
    <cfif IsSimpleValue(value)>
      <cfoutput>
      #httpHeader# : #value#<BR>
      </cfoutput>
<cfelse>
      <cfloop index = "counter" from = 1 to = #ArrayLen(value)#>
       <cfoutput>
        #httpHeader# : #value[counter]#<BR> 
       </cfoutput>
 </cfloop>
</cfif>

しかし、それは次のエラーをスローします

Object of type class coldfusion.util.FastHashtable cannot be used as an array  


The error occurred in C:/inetpub/wwwroot/cfdocs/Response.cfm: line 22

20 :     </cfoutput>
21 :   <cfelse>
22 :     <cfloop index = "counter" from = 1 to = #ArrayLen(value)#>
23 :       <cfoutput>
24 :         #httpHeader# : #value[counter]#<BR> 
4

3 に答える 3

3

次のように Cookie を取得できます。

<cfset cookies = cfhttp.responseHeader["set-cookie"] />

<cfdump var="#cookies#" />

その後、その Cookie 構造体データを使用して、後続のリクエストを行うことができます。

于 2012-08-06T19:25:32.380 に答える
1

問題は、構造体をループしようとしているが、それを配列として扱っていることです。構造体をループするには、「コレクション」を使用する必要があります。

<cfloop collection="#cfhttp.responseHeader['set-cookie']#" item="sKey">
    .....
</cfloop>
于 2013-10-28T10:17:46.500 に答える