如何获取用户代理字符串并插入 API URL 进行调用

How to Take User Agent String and Plug Into API URL for Call

正在尝试使用 Glassdoor API 提取 JSON 数据和 display/review。

这里和这个问题有点关系,除了这个人用了Python,我需要用JS/Jquery:

但是,Glassdoor 的 API 文档表明请求旨在通过此 URL/pattern:

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

而且,navigator.userAgent 返回的用户代理字符串比包含在 URL:

中需要的长得多且格式不同

Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36

这是我在自己的设置中测试时返回的结果。我想这样做,以便将客户端用户代理正确添加到 URL 以供请求。

我是否只使用前 x 个字符的子字符串?有没有更好的方法来自动将 native/client 侧用户代理附加到 URL?或者,我可以不将它附加到 URL 并提交一个类似于包含它的 Python 方法的对象,而 .getJSON 方法会自动执行吗?查看 JQuery.getJSON 文档后我不清楚。

我已经尝试在网络、Whosebug 和 github 上搜索关于用户代理字符串如何 appended/parsed 正确添加到 URL 的想法或清晰的 JS 协议。 Jquery 中的 getJSON 方法,但我一头雾水...或者,也许它只是我的脑袋...

我是新手,还在学习,也许我没有在寻找合适的条款?或者误解了如何使用 .getJSON?

这是我目前使用 .getJSON 方法和 URL 结构的方式:

$.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")

我想出了如何使用 ipify.org 获取客户端 IP 地址并使用变量 "uip" 将其放入 URL 中,就是这样。

非常感谢您提供的任何帮助和建议!

使用jQuery时,您可以将参数作为对象提供,它会自动将它们正确格式化为URL:

$.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) {
    ...
});