sách gpt4 ai đã đi

java - OAuth2 Java - 如何设置 Accept header

In lại 作者:行者123 更新时间:2023-12-02 06:15:42 27 4
mua khóa gpt4 Nike

我正在尝试使用混合解决方案为我的网站实现“使用 Github 登录”功能 - 网站的 javascript 执行初始登录/凭据,重定向 url 用于继续访问 token 请求的 tomcat servlet。

我正在使用适用于 Java 的 Google API oauth2 库。

我的代码目前如下所示:

AuthorizationCodeTokenRequest tokenRequest =
new AuthorizationCodeTokenRequest(
new NetHttpTransport(),
new JacksonFactory(),
new GenericUrl("https://github.com/login/oauth/access_token"),
code)
.setClientAuthentication(
new ClientParametersAuthentication(
GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET));

TokenResponse tokenResponse = tokenRequest.execute();

这不起作用,我收到以下异常:

com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'access_token': was expecting ('true', 'false' or 'null')

我调查了一下,发现来自 Github 的响应不是 json 格式(JacksonFactory 期望的),但实际上看起来像这样:

access_token=xxxxxxxxxxx&scope=user%3Aemail&token_type=bearer

我在https://developer.github.com/v3/media/#request-specific-version中找到了我需要将请求的 Accept http header 设置为 application/vnd.github.v3+json 才能返回 json 格式的内容。

如何使用 Google 的 oauth2 api 执行此操作?

编辑:基于tinker的回应,我通过添加以下内容解决了:

tokenRequest.setRequestInitializer(new HttpRequestInitializer()
{
@Ghi đè
public void initialize(HttpRequest request) throws IOException
{
request.getHeaders().setAccept("application/json");
}
});

1 Câu trả lời

您必须创建一个 HttpRequest 并向其中添加 header 。看javadoc用于在此处设置请求 header 。

từ AuthorizationCodeTokenRequest Bạn có thể sử dụng getRequestInitializer() 获取 HttpRequestInitializer。如果为 null,则您可以创建一个初始化程序并对新创建的对象使用 setRequestInitializer().

使用初始化程序,您现在可以khởi tạo具有所需 header 的请求。

我还没有测试过这个,所以我不太确定,但是来自 tài liệu这看起来是唯一的方法。

关于java - OAuth2 Java - 如何设置 Accept header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29686893/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com