s. Thema. Der Browser, welcher das unterstützt, sendet einen Request mit verschlüsselten Daten, mit Perl nachgestellt, sieht der Request so aus:
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
# User-Agent und URL
my $ua = LWP::UserAgent->new;
my $url = "https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyD-s-mXL4mBzF7KMRkhTCIbG2RKnRGXzJc";
my $req = (POST $url, "{}");
my $res = $ua->request($req);
print $res->as_string;
Und hier die Response: HTTP/1.1 200 OK Cache-Control: no-cache, no-store, max-age=0, must-revalidate Connection: close Date: Sat, 14 Mar 2015 16:48:57 GMT Pragma: no-cache Accept-Ranges: none Server: GSE Vary: X-Origin Vary: Origin,Accept-Encoding Content-Type: application/json; charset=UTF-8 Expires: Fri, 01 Jan 1990 00:00:00 GMT Alternate-Protocol: 443:quic,p=0.5 Client-Date: Sat, 14 Mar 2015 16:48:57 GMT Client-Peer: 216.58.211.42:443 Client-Response-Num: 1 Client-SSL-Cert-Issuer: /C=US/O=Google Inc/CN=Google Internet Authority G2 Client-SSL-Cert-Subject: /C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.googleapis.com Client-SSL-Cipher: ECDHE-RSA-AES128-GCM-SHA256 Client-SSL-Socket-Class: IO::Socket::SSL X-Content-Type-Options: nosniff X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block
{ "location": { "lat": 49.9889241, "lng": 8.2716688 }, "accuracy": 96456.0 }
Anmerkung: Wie obenstehender Key erzeugt wird, ist ein Geheimnis des Browsers. Das Beispiel ergibt sich mit meiner derzeitigen IP-Adresse, die Daten sehen ggf. anders aus.
MfG