Nano Hash - криптовалюты, майнинг, программирование

Coldfusion cfhttp — имеет переменную URL, которая нарушает функцию получения

Я пытаюсь выполнить сообщение cfhttp, и мне нужно включить URL-адрес в переменные URL-адреса, чтобы указать, где разместить уведомление о доставке.

Вот мой код:

    <cfhttp result="CFHTTP" method="GET" url="http://xxxxxxxxxxx/send-sms.php?sender=#numbers.number#&to=#get_sms.receiver#&message=#get_sms.msgdata#&dlr-url=#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> 

И все работает, если я не включаю dlr_url, который похож на следующий:

http://entry.xxxxxxxx.com/process_dlr.cfm?status=%d&msisdn=%p&dlr-mask=31&data=%a&batchid=161F3CE3-E031-9CFF-7364A9C1AC50AA5B&destination=2&accountID=123&sub_id=12345678 2222

Я могу только предположить, что такие предметы, как ? и & будет нарушать процесс. Любые идеи о том, как это сделать?

Спасибо всем за любую помощь.


Ответы:


1

Здесь есть некоторые недостатки.

  1. Не указывайте параметры запроса вручную в атрибуте url. Вместо этого используйте <cfhttpparam param type="url".
  2. Запрос GET не поддерживает тело (данные формы), поэтому <cfhttpparam type="formfield" ничего делать не собирается.
  3. Почему вы даже пытаетесь отправить одни и те же параметры через строку запроса И тело?

Если вы используете правильные теги 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']
09.07.2020

2

Я не то, что я думал....

Необходимо закодировать: #URLEncodedFormat(get_sms.dlr_url)#

Извините не подумал спасибо!!!

09.07.2020
  • Проверьте мой ответ для правильного исправления. 10.07.2020
  • Спасибо, Алекс, это понятно. Благодарим вас за дополнительную помощь. 10.07.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..