繁体   English   中英

POST到外部HTTPS网页后如何获取数据?

[英]How I can get data after make a POST to an external HTTPS Web Page?

我需要对远程服务器中的HTTPS网页进行JSON格式的POST,并接收JSON格式的答案。

要发送到远程服务器的数据是从URL(栏)获取的-<-在PHP中完成

我的问题是发送此数据并收到答案。

我试着用cURL(php)和commit(html)用PHP和HTML制作。

结果:在PHP中,我什么也不能发送。 在HTML中,我可以提交数据,获得答案,但无法捕获代码。

我使用Wireshark看到了答案,正如我看到的那样,POST是在协商协议之后进行的,并且正如我所说的,我收到了答案(我认为是HTTPS编码)。

现在,我需要在代码中收到该答案以生成URL链接,因此我正在考虑使用Java脚本。

我从来没有做过类似的事情。

任何建议将不胜感激,谢谢。


我正在使用以下代码,没有结果,但有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。

干杯!

如果设置正确,PHP并没有真正的理由不能为您提供PHP。

例如,它可能需要在某个时候在客户端浏览器上设置的cookie,而您的PHP / curl请求则没有。

要进行适当的调试,请在Firefox中使用HTTPFox或Firebug,它们可以从浏览器本身监视请求,并且可以显示实际数据,而不是wirehark捕获的加密垃圾。

当然,您可以将客户端浏览器用作服务器的代理。 浏览器发布到HTTPS服务器,获取响应,然后将该响应发送到您的服务器。 但是,如果该数据“重要”并且不应该公开,那么客户端解决方案将是一个糟糕的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM