[英]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.