2016-06-22 4 views
0

Der Versuch, die Glassdoor-API zum Abrufen von JSON-Daten und Anzeigen/Überprüfen zu verwenden.So nehmen Sie die User Agent-Zeichenfolge und stecken sie in die API-URL für den Anruf

Etwas im Zusammenhang mit dieser Frage hier, es sei denn diese Person verwendet Python und ich brauche JS/JQuery zu verwenden: REST: Glassdoor API requires User-Agent in header

Allerdings sind Glassdoor der API-Dokumentation zeigt an Anfragen über diese URL/Muster gehen soll:

http://api.glassdoor.com/api/api.htm?v=1&format=json&t.p=120&t.k=fz6JLNDfgVs&action=employers&q=pharmaceuticals&userip=192.168.43.42&useragent=Mozilla/%2F4.0

und die Zeichenfolge User Agent von navigator.userAgent zurückgegeben wird, ist viel länger und anders formatiert als es für die Aufnahme in die URL wäre:

Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537,36 (KHTML, wie Gecko) Chrom/51.0.2704.84 Safari/537,36

Das ist, was zurückgegeben wird, wenn ich es in meinem eigenen Setup testen. Ich möchte es so machen, dass der clientseitige Benutzeragent der URL für die Anfrage korrekt hinzugefügt wird.

Verwenden Sie einfach die Teilzeichenfolge, die die erste x Anzahl der Zeichen ist? Gibt es eine bessere Möglichkeit, zu automatisieren, wie der native/clientseitige Benutzeragent an die URL angehängt wird? ODER, könnte ich es nicht an die URL anhängen und ein Objekt ähnlich der Python-Methode einreichen, die es enthält und die .getJSON-Methode wird es automatisch tun? Ich war unklar, nachdem ich das JQuery.getJSON-Dokument überprüft hatte.

Ich habe versucht, das Internet, StackOverflow und github für Ideen oder ein klares JS-Protokoll für wie Zeichenfolge des Benutzers Agent würde ordnungsgemäß an die URL für .getJSON-Methode in Jquery angefügt/geparst geschickt, aber ich bin gekommen blank ... Oder vielleicht ging es einfach über meinen Kopf ...

Ich bin sehr neu und lerne immer noch, also suche ich vielleicht nicht nach den richtigen Begriffen? Oder missverstehen Sie, wie .getJSON verwendet werden kann?

Hier ist die Art, wie ich die .getJSON Methode und URL bisher strukturiert haben:

$.getJSON("http://api.glassdoor.com/api/api.htm?v=1&format=json&t.p=70977&t.k=e5CNsNJMxw7&action=employers&q=" + industry + "&userip=" + uip + "&useragent=Mozilla/%2F4.0") 

ich herausgefunden, wie ipify.org verwenden clientseitige IP-Adresse zu erhalten, und dass in die URL-Drop mit die Variable "uip", also das ist es.

Vielen Dank im Voraus für jede Hilfe und Beratung, die Sie haben können!

+0

Verwenden 'encodeURIComponent (') der User-Agent-String URL-Codierung. – Barmar

Antwort

0

Wenn jQuery verwenden, können Sie die Parameter als Objekt zur Verfügung stellen, und es wird sie automatisch richtig in das URL-Format:

$.getJSON("http://api.glassdoor.com/api/api.htm", { 
    v: 1, 
    format: 'json', 
    't.p': 70977, 
    't.k': e5CNsNJMxw7&action=employers, 
    q: industry, 
    userip: uip, 
    useragent: navigator.userAgent 
}, function(response) { 
    ... 
}); 
+0

Brilliant! Sowohl Ihr Kommentar zu meinem ursprünglichen Beitrag als auch diese Antwort waren unglaublich hilfreich. Ich danke dir sehr! – TRobeson