使用cfx_http5标记替换cfhttp代码

时间:2017-05-01 01:41:07

标签: coldfusion coldfusion-9

我正在尝试转换以下代码的paypal响应

<?php
$foo = '/\/.+\//';
$test =  '<img src="/root/images/ANY MORE PATH HERE/file.jpg">';
echo preg_replace($foo, '', $test);
?>

使用cfx_htt5但不知怎的,我的尝试出错:

我给了以下镜头,但没有工作

<CFHTTP URL="#serverURL#" METHOD="POST" proxyserver=#proxyName# proxyport="#proxyPort#">
              <cfloop collection=#requestData# item="key">
                  <CFHTTPPARAM NAME="#key#" VALUE="#requestData[key]#" TYPE="FormField" ENCODED="YES">
              </cfloop>
            </CFHTTP> 

在顶部它使用循环和代理,我不知道我该怎么做呢

1 个答案:

答案 0 :(得分:2)

我更喜欢将所有FORM参数添加到数组中,然后将其转换为列表。阅读文档并确保值是URLEncoded。您可能还需要使用添加其他标头。 (我更喜欢始终使用自定义用户代理。)如果设置SSL =“5”,则可以另外强制使用TLS1.2协议。

<CFSET CRLF=Chr(13) & Chr(10)>
<CFSET Params = ArrayNew(1)>
<CFLOOP COLLECTION=#requestData# ITEM="key">
    <CFSET ArrayAppend(Params, "#key#=#URLEncodedFormat(requestData[key])#">
</CFLOOP>
<CFSET BODY=ArrayToList(Params, "&")>
<CFSET HEADERS="Content-Type: application/x-www-form-urlencoded#CRLF#">
<CFX_HTTP5 METHOD="POST" URL="#serverURL#" BODY="#BODY#" HEADERS="#Headers#" OUT="RES" SSL="5">