Здесь есть несколько fl aws.
- Не указывайте параметры запроса вручную в атрибуте
url
. Вместо этого используйте <cfhttpparam param type="url"
. - Запрос
GET
не поддерживает тело (данные формы), поэтому <cfhttpparam type="formfield"
ничего не сделает. - Почему вы даже пытаетесь отправить те же параметры через строку запроса И тело?
Если вы используете правильные теги cfhttpparam
, вам не нужно кодировать значения вручную.
Правильный запрос с параметрами через строку запроса
<cfhttp result="CFHTTP" method="GET" url="http://xxxxxxxxxxx/send-sms.php">
<cfhttpparam type="url" name="sender" value="#numbers.number#">
<cfhttpparam type="url" name="to" value="#get_sms.receiver#">
<cfhttpparam type="url" name="message" value="#get_sms.msgdata#">
<cfhttpparam type="url" name="dlr-url" value="#get_sms.dlr_url#">
</cfhttp>
Правильный запрос с параметрами через строку запроса И тело
<cfhttp result="CFHTTP" method="POST" url="http://xxxxxxxxxxx/send-sms.php">
<cfhttpparam type="url" name="sender" value="#numbers.number#">
<cfhttpparam type="url" name="to" value="#get_sms.receiver#">
<cfhttpparam type="url" name="message" value="#get_sms.msgdata#">
<cfhttpparam type="url" name="dlr-url" value="#get_sms.dlr_url#">
<cfhttpparam type="formfield" name="sender" value="#numbers.number#">
<cfhttpparam type="formfield" name="to" value="#get_sms.receiver#">
<cfhttpparam type="formfield" name="message" value="#get_sms.msgdata#">
<cfhttpparam type="formfield" name="dlr-url" value="#get_sms.dlr_url#">
</cfhttp>
Разница: POST
позволяет строку запроса и полезную нагрузку тела. GET
допускает только строку запроса.
Я предполагаю, что вы более знакомы с PHP, поэтому вот как переводится атрибут type
:
type="url" name="sender"
=> $_GET['sender']
type="formfield" name="sender"
=> $_POST['sender']