Несколько параметрических усилителей в http получают запрос

После МНОЖЕГО попыток я наткнулся на решение, которое предотвратило такое поведение.

Проблема заключалась в индикаторе SoapClient keep_alive.

Создавая SoapClient с ложным флагом keep_alive

$soapClient = new \SoapClient($wsdl,[
    'trace' => 1,
    'features' => SOAP_SINGLE_ELEMENT_ARRAYS,
    'keep_alive' => false,
    'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP,
    'cache_wsdl' => WSDL_CACHE_MEMORY
]);

, вы запрещаете ему устанавливать соединение с поддержкой активности, поэтому каждый вызов будет создавать совершенно новое соединение с веб-службой.

Это не может быть супероптимизировано, но в моем долгосрочном контексте сценария предотвращает странную ошибку, которая у меня была, и проверяя это в течение долгого времени (часы), ошибка никогда не возвращалась

6
задан Hank Gay 4 March 2009 в 20:24
поделиться

4 ответа

Это не допустимо для использования? снова.? должен указать на запуск списка параметров. И должен разделить параметры.

От RFC 3986:

URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

От RFC 1738:

URL HTTP принимает форму:

http:// <host> : <port> / <path> ? <searchpart>

где <host> и <port> как описаны в Разделе 3.1. Если :<port> опущен, значения по умолчанию порта к 80. Никакое имя пользователя или пароль не позволяется. <path> селектор HTTP, и <searchpart> строка запроса. <path> является дополнительным, как <searchpart> и его предыдущее"?". Если ни один <path> ни <searchpart> присутствует, "/" может также быть опущен.

В <path> и <searchpart> компоненты, "/", ";", "?" резервируются. "/" символ может использоваться в HTTP для обозначения иерархической структуры.

Поисковая часть части/запроса описана здесь.

7
ответ дан 9 December 2019 в 20:49
поделиться

используйте и для второго и третьего

т.е. http://asdf.com/something.do?param1=true&param2=false

4
ответ дан 9 December 2019 в 20:49
поделиться

Как упомянуто, это не допустимо для использования его снова. Однако, если Вы имеете? символ как часть значения параметра, можно закодировать его %63 (точно так же, как пробел, который кодируется как %20).

0
ответ дан 9 December 2019 в 20:49
поделиться

application/x-www-form-urlencoded

Это - тип контента по умолчанию. Формы, отправленные с этим типом контента, должны быть закодированы следующим образом:

  1. Имен элементов управления и значений оставляют. Пробелы заменяются +, и затем зарезервированных символов оставляют, как описано в [RFC1738], разделяют 2.2: неалфавитно-цифровые символы заменяются %HH, знак процента и две шестнадцатеричных цифры, представляющие код ASCII символа. Разрывы строки представлены как пары "CR LF" (т.е. %0D%0A).
  2. Имена/значения управления перечислены в порядке, они появляются в документе. Имя разделяется от значения = и пары имя/значение разделяются друг от друга &.

application/x-www-form-urlencoded

1
ответ дан 9 December 2019 в 20:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: