【发布时间】:2020-10-13 21:42:14
【问题描述】:
我正在编写一个使用last.fm API 下载数据的Java 桌面应用程序。我被困在指令的身份验证过程中:
打开网络浏览器并将用户发送到last.fm/api/auth,并使用您的 API 密钥和身份验证令牌作为参数。使用 HTTP GET 请求。
我不明白如何使用 HTTP GET 请求将 Web 浏览器打开到特定的 URI。这可能吗?
谢谢
【问题讨论】:
我正在编写一个使用last.fm API 下载数据的Java 桌面应用程序。我被困在指令的身份验证过程中:
打开网络浏览器并将用户发送到last.fm/api/auth,并使用您的 API 密钥和身份验证令牌作为参数。使用 HTTP GET 请求。
我不明白如何使用 HTTP GET 请求将 Web 浏览器打开到特定的 URI。这可能吗?
谢谢
【问题讨论】:
试试Desktop:
Desktop.getDesktop().browse(new URI("http://www.last.fm/api/auth/?api_key=xxxxxxxxxx&token=yyyyyy"));
根据last.fmdocumentation:
如果用户未登录 Last.fm,他们将被重定向到登录页面,然后被要求授予您的应用程序使用其帐户的权限。在此页面上,他们将看到您的应用程序的名称,以及第 2 节中提供的应用程序描述和徽标。一旦用户授予您的应用程序使用其帐户的权限,基于浏览器的过程就结束了,并询问用户关闭他们的浏览器并返回到您的应用程序。
【讨论】:
api_key 和token 值。您应该通过auth.getToken 获取令牌。该方法与要求用户从您的应用程序中复制链接并将其粘贴到浏览器中的方法相同。但这与您通过 HttpClient 静默发出 GET 请求不同。