Intereting Posts
Загружать прикрепленные файлы из проекта сообщений в API Gmail через PHP Как правильно установить часовой пояс mysql Заполнение списка выпадающего меню после проверки формы отправки Преобразование командной строки cURL в PHP cURL Проверить видимое качество изображения Использование PHPass для хеш-пароля Странные результаты с использованием метода PHPI Imagick getImageSignature Инъекция зависимостей: вытягивание необходимых компонентов, когда они действительно необходимы Как синхронизировать две таблицы базы данных Mysql Ошибка PHP CURL 7 не удалось подключиться к хосту Как узнать, являются ли данные возврата Json или String в jQuery и PHP? Как вычесть microtime и дату показа с миллисекундами в php? Symfony2 – получить текущий маршрут основного запроса в частичном / подзапросе Передача класса метода в качестве функции обратного вызова в WordPress Ошибка отправки FPDF в браузер

Как я могу получить данные после отправки POST на внешнюю веб-страницу HTTPS?

Мне нужно сделать POST в формате JSON на веб-странице HTTPS на удаленном сервере и получить ответ в формате JSON.

Данные, отправляемые на удаленный сервер, берут его из URL (bar) <— Выполнено в PHP

Моя проблема заключается в отправке этих данных и получении ответа.

Я попытался сделать это на PHP и HTML, используя cURL (php) и submit (html).

Результаты: В PHP я ничего не могу отправить. В HTML я могу отправить данные, получить ответ, но я не могу поймать в своем коде.

Я вижу ответ, используя Wireshark, и, как я вижу, POST делает это после протокола переговоров, и, как я уже сказал, я получаю ответ (закодированный из-за HTTPS, я думаю).

Теперь мне нужно получить этот ответ в моем коде, чтобы создать ссылку URL-адреса, поэтому я рассматриваю возможность использования Java Script.

Я никогда раньше ничего подобного не делал.

Любое предложение будет оценено, спасибо.


Я использую следующий код с результатом не 20 секунд задержки до пустой страницы.

<?php $url = 'https://www.google.com/loc/json'; $body = '{"version":"1.1.0","cell_towers":[{"cell_id":"48","location_area_code":1158,"mobile_country_code":752,"mobile_network_code.":7,"age":0,"signal_strength":-71,"timing_advance":2255}]}'; $c = curl_init(); curl_setopt($c, CURLOPT_URL, $url); curl_setopt($c, CURLOPT_POST, true); curl_setopt($c, CURLOPT_POSTFIELDS, $body); curl_setopt($c, CURLOPT_RETURNTRANSFER, true); //curl_setopt($c, CURLOPT_HTTPHEADERS,'Content-Type: application/json'); $page = curl_exec($c); echo($page); //print_r($page); curl_close($c); ?> 

Новая информация

Я просто получаю новую очень важную информацию

« Условия обслуживания Gears запрещают прямое использование сервера местоположений Google (http://www.google.com/loc/json) через HTTP-запросы. Доступ к этой услуге можно получить только через API геолокации ».

Итак, я шел неправильно, и теперь я начну узнавать о Gears, чтобы применить API Gears.

Ура!

Нет никакой реальной причины, по которой PHP не может сделать PHP для вас, если вы правильно настроите ситуацию.

Например, может потребоваться куки-файл, который он установил в браузере клиента в какой-то момент, который у вашего PHP / curl-запроса нет.

Для правильной отладки используйте HTTPFox или Firebug в Firefox, которые отслеживают запросы из самого браузера и могут отображать фактические данные, а не зашифрованный мусор, который будет захватывать wirehark.

Конечно, вы можете использовать клиентский браузер как своего рода прокси для своего сервера. Сообщения браузера на сервер HTTPS, получает ответ, а затем отправляют этот ответ на ваш сервер. Но если эти данные «важны» и не должны подвергаться воздействию, то решение на стороне клиента является плохим.