You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中如何通过GET请求向远程服务器发送Token获取认证信息?

Android Studio中GET请求携带Token认证的解决方法

嘿,作为Android Studio新手遇到这个认证问题太正常啦!我来帮你一步步搞定用GET请求带Token获取服务器信息的事儿~

首先,绝大多数后端服务的Token认证都是把Token放在请求头里传递的,最常用的字段是Authorization,格式一般是Bearer <你的Token ID>(有些服务器可能不需要Bearer前缀,直接传Token就行,这个得看后端的要求)。

下面给你用Android常用的OkHttp库举个实际例子,步骤很清晰:

第一步:添加OkHttp依赖

先打开你的build.gradle(Module level)文件,在dependencies里加上OkHttp的依赖(版本可以用最新的):

dependencies {
    implementation 'com.squareup.okhttp3:okhttp:4.12.0'
}

同步一下项目,确保依赖加载成功。

第二步:编写带Token的GET请求代码

注意哈,Android不允许在主线程发起网络请求,所以我们用OkHttp的异步回调来处理:

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
import android.util.Log;

// 可以在你的Activity或者工具类里写这个方法
public void sendGetRequestWithToken() {
    OkHttpClient client = new OkHttpClient();

    // 替换成你的实际服务器接口地址
    String serverUrl = "https://你的服务器接口地址";
    // 替换成你拿到的Token ID
    String token = "你的TokenID";

    // 构建请求,把Token放到请求头里
    Request request = new Request.Builder()
            .url(serverUrl)
            // 这里的格式要和后端要求一致,比如不需要Bearer就改成 .addHeader("Authorization", token)
            .addHeader("Authorization", "Bearer " + token)
            .get() // 明确是GET请求
            .build();

    // 异步发起请求
    client.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(@NonNull Call call, @NonNull IOException e) {
            // 请求失败的处理,比如打印错误日志
            Log.e("GET_ERROR", "请求失败: " + e.getMessage());
            e.printStackTrace();
        }

        @Override
        public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
            if (response.isSuccessful()) {
                // 请求成功,获取返回的数据
                String responseData = response.body().string();
                Log.d("GET_SUCCESS", "返回数据: " + responseData);
                // 这里可以把数据拿到主线程更新UI,比如用runOnUiThread
                runOnUiThread(() -> {
                    // 更新UI的逻辑,比如显示数据到TextView
                });
            } else {
                // 请求失败,比如401认证错误,打印状态码和信息
                Log.e("GET_ERROR", "请求失败,状态码: " + response.code() + ",信息: " + response.message());
                // 如果是401,大概率是Token无效或者格式不对,先检查Token和请求头格式
            }
        }
    });
}

第三步:别忘了加网络权限

打开AndroidManifest.xml,在<application>标签外面加上网络权限:

<uses-permission android:name="android.permission.INTERNET" />

几个关键注意点

  • 确认Token的有效性:如果还是报认证错误,先检查Token有没有过期,是不是从后端正确获取的
  • 请求头字段要和后端一致:有些后端可能不用Authorization,而是用Token或者其他字段,一定要和后端开发确认清楚
  • 不要在主线程跑网络请求:OkHttp的enqueue是异步的,已经帮你处理了子线程,不用自己再开线程啦
  • 如果用的是其他网络库(比如Retrofit),逻辑也是一样的,都是给请求添加头信息

内容的提问来源于stack exchange,提问作者loucha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:48:11