【问题标题】:Java Open a Web Browser to a URI with an HTTP GET RequestJava 使用 HTTP GET 请求打开 Web 浏览器到 URI
【发布时间】:2020-10-13 21:42:14
【问题描述】:

我正在编写一个使用last.fm API 下载数据的Java 桌面应用程序。我被困在指令的身份验证过程中:

打开网络浏览器并将用户发送到last.fm/api/auth,并使用您的 API 密钥和身份验证令牌作为参数。使用 HTTP GET 请求。

我不明白如何使用 HTTP GET 请求将 Web 浏览器打开到特定的 URI。这可能吗?

谢谢

【问题讨论】:

    标签: java http get


    【解决方案1】:

    试试Desktop:

    Desktop.getDesktop().browse(new URI("http://www.last.fm/api/auth/?api_key=xxxxxxxxxx&token=yyyyyy"));
    

    根据last.fmdocumentation

    如果用户未登录 Last.fm,他们将被重定向到登录页面,然后被要求授予您的应用程序使用其帐户的权限。在此页面上,他们将看到您的应用程序的名称,以及第 2 节中提供的应用程序描述和徽标。一旦用户授予您的应用程序使用其帐户的权限,基于浏览器的过程就结束了,并询问用户关闭他们的浏览器并返回到您的应用程序。

    【讨论】:

    • 感谢您的回复!我尝试了这段代码,它确实打开了网络浏览器并要求用户授权,但它似乎没有将我的应用程序与用户帐户链接起来(在用户帐户设置中检查)。这和使用 GET 请求打开浏览器并请求授权一样吗?
    • 检查您是否传递了正确的api_keytoken 值。您应该通过auth.getToken 获取令牌。该方法与要求用户从您的应用程序中复制链接并将其粘贴到浏览器中的方法相同。但这与您通过 HttpClient 静默发出 GET 请求不同。
    • 我测试了 api_key 和 token 的值,它们看起来不错。感谢您解释使用 Desktop 对象和 HTTP 客户端之间的区别。我仍然收到 403 响应代码。
    猜你喜欢
    • 2013-03-19
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多