gpt4 book ai didi

java - java获取#后的url参数

转载 作者:行者123 更新时间:2023-11-30 07:35:48 24 4
gpt4 key购买 nike

我正在尝试从 facebook 获取 access_token。首先,我使用如下 url 重定向到 facebook

https://graph.facebook.com/oauth/authorize?type=user_agent&client_id=7316713919&redirect_uri=http://whomakescoffee.com:8080/app/welcome.jsf&scope=publish_stream

然后我有一个获取 url 的监听器。

FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request =
(HttpServletRequest) fc.getExternalContext().getRequest();
String url = request.getRequestURL().toString();
if (url.contains("access_token")) {
int indexOfEqualsSign = url.indexOf("=");
int indexOfAndSign = url.indexOf("&");
accessToken = url.substring(indexOfEqualsSign + 1, indexOfAndSign);
handleFacebookLogin(accessToken, fc);
}

但它永远不会进入 if..

当参数出现在 # 之后而不是通常的参数出现在 ? 之后时,如何检索参数。

网址看起来像

http://benbiddington.wordpress.com/#access_token=
116122545078207|
2.1vGZASUSFMHeMVgQ_9P60Q__.3600.1272535200-500880518|
QXlU1XfJR1mMagHLPtaMjJzFZp4

最佳答案

URL 编码不正确。这是XML-escaped而不是 URL-encoded . # 是 URL 中的保留字符,代表永远不会发送回服务器端的客户端片段。

URL 应该更像这样:

https://graph.facebook.com/oauth/authorize?type=user_agent&client_id=7316713919&redirect_uri=http%3a%2f%2fwhomakescoffee.com%3a8080%2fapp%2fwelcome.jsf%26scope%3dpublish_stream

您可以使用 java.net.URLEncoder为此。

关于java - java获取#后的url参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4144878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com