我需要以JSON格式将POST发送到远程服务器中的HTTPS网页,并以JSON格式接收答案。
要发送到远程服务器的数据是从URL(bar)< ---在PHP完成
中获取的数据我的问题是发送这些数据并收到答案。
我尝试在PHP中使用cURL(php)和提交(html)进行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服务条款禁止通过HTTP请求直接使用Google位置服务器(http://www.google.com/loc/json)。此服务只能通过Geolocation API访问。 “
所以,我走错了方向,从现在起我将开始学习Gears以应用Gears API。
干杯!
答案 0 :(得分:0)
如果你正确设置,PHP没有理由不能为你做PHP。
例如,它可能需要在某个时刻在客户端浏览器上设置的cookie,这是您的PHP / curl请求所没有的。
要进行正确的调试,请在Firefox中使用HTTPFox或Firebug,它可以监控浏览器内部的请求,并可以显示实际数据,而不是wireshark将捕获的加密垃圾。
当然,您可以将客户端浏览器用作服务器的一种代理。浏览器发布到HTTPS服务器,获得响应,然后将该响应发送到您的服务器。但是,如果该数据“重要”且不应公开,那么客户端解决方案就不好了。