Я работал с PHP уже много лет и установил многие HTML-формы, которые затем обрабатываются другой php-страницей, чтобы вставить запись в базу данных, в которой параметры POST задаются в отдельных полях.Проблемы с обработкой HTTP POST
Теперь я работаю с новым веб-сервисом, который отправляет данные на одну из наших страниц PHP, и нам не удалось проанализировать параметры POST. Я настраиваю тестовую форму html, чтобы имитировать POST, и это работает успешно.
Я просматриваю журналы IIS (сервер Windows Server 2008 R2 Standard Edition с IIS 7.5 и PHP 5.3.8) и установил Microsoft Network Monitor для сбора сведений о данных POST. Вот отрывок, показывающий детали полезной нагрузки для Webservice и мой HTML-форму:
Webservice: - клиент в IIS Вход появляется как: Apache-HttpClient/4.0.1 + (Java + 1,5)
- полезная нагрузка : HttpContentType = NetmonNull HTTPPayloadLine: inReplyToId = MG1133 & для = 61477751386 & тела = Тест & от = 61477751386 & MessageId = 166652576 & rateCode =
Мой HTML Форма:
- полезная нагрузка: HttpContentType = применение/х-WWW-форм-urlencoded inReplyToId: MG1133 к: 61477751386 тела: Тест от: 61477751386 MESSAGEID: 166594397
На странице PHP мы используем серию:
if(isset($_POST['inReplyToId']) && $_POST['inReplyToId'] !== '') {
$request->setField('ReplyToID', $_POST['inReplyToId']);
}
, чтобы получить значения POST и установить их в поля как часть создания новой записи в базе данных. Когда Webservice выполняет POST, ни одно из значений POST не устанавливается в полях - запись создается, но с пустыми значениями поля.
Когда мы выполняем полную форму html, все происходит так, как ожидалось.
Я не уверен, куда идти дальше с устранением неполадок - я могу увидеть различные HttpContentType и другую структуру для полезной нагрузки, но не уверен, что это проблема и какие действия мне нужно предпринять.
У вас есть журнал доступа? Возможно, они не отправляют HTTP POST, а GET. –
Проверьте журнал - это определенно проходит через POST. – user982124
попробуйте получить данные из php: // input – hynner