簡體   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