Android请求时候添加共同的参数

Android在联网请求时候需要添加共同的参数比如Token,如果每次都在请求时候添加的请求参数中会很麻烦,可以添加到请求头中,每次联网操作就不需要添加了,我联网操作使用的是Retrofit,忘记是看到的哪位大神的博客了,Retrofit的封装是借鉴的别人的。

RetrofitManager.java

public class RetrofitManager {
    private static RetrofitManager mRetrofitManager;
    private Retrofit mRetrofit;
    private static final String TAG = "RetrofitManager";
    private RetrofitManager(){
        initRetrofit();
    }

    public static RetrofitManager getInstance(){
        if (mRetrofitManager == null){
            mRetrofitManager = new RetrofitManager();
        }
        return mRetrofitManager;
    }


    private void initRetrofit() {
        OkHttpClient.Builder builder = new OkHttpClient.Builder();
        builder.addInterceptor(new TokenInterceptor());//添加Token控制拦截器
        File cacheFile = new File(context.getCacheDir()+"");
        Cache cache = new Cache(cacheFile,Constant.CACHE_SIZE);
        builder.cache(cache);
        builder.connectTimeout(15, TimeUnit.SECONDS);
        builder.readTimeout(20, TimeUnit.SECONDS);
        builder.writeTimeout(20, TimeUnit.SECONDS);
        builder.retryOnConnectionFailure(true);
        OkHttpClient client = builder.build();

        mRetrofit = new Retrofit.Builder()
                .baseUrl(Constant.BASEURL)
                .addConverterFactory(GsonConverterFactory.create())
                .client(client)
                .build();
    }

    public <T> T createReq(Class<T> reqServer){
        return mRetrofit.create(reqServer);
    }


    

    public class TokenInterceptor implements Interceptor {

        @Override
        public Response intercept(Chain chain) throws IOException {
            Request request = chain.request().newBuilder().addHeader("Cookie", "wf_token=" + SPUtils.getToken()).build();
            Response response = chain.proceed(request);
            return response;
        }
    }



}

通过抓包工具抓包,获取数据如下:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 中使用 POST 请求添加参数可以通过以下步骤实现: 1. 创建一个 URL 对象,指定需要访问的接口地址; 2. 创建一个 HttpURLConnection 对象,通过 URL 对象获取连接; 3. 设置 HttpURLConnection 的请求方式为 POST; 4. 设置 HttpURLConnection 的请求参数,例如 Content-Type、Charset、User-Agent 等; 5. 设置 HttpURLConnection 的输出流,写入需要提交的参数; 6. 发起请求并获取服务器返回的响应结果。 下面是一个示例代码: ```java // 接口地址 String apiUrl = "http://api.example.com/adduser"; // 创建 URL 对象 URL url = new URL(apiUrl); // 创建 HttpURLConnection 对象 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 设置请求方式为 POST conn.setRequestMethod("POST"); // 设置请求参数 conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setRequestProperty("Charset", "UTF-8"); conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"); // 设置输出流,写入需要提交的参数 String params = "username=testuser&password=123456"; OutputStream os = conn.getOutputStream(); os.write(params.getBytes("UTF-8")); os.flush(); os.close(); // 发起请求并获取服务器返回的响应结果 InputStream is = conn.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); StringBuilder response = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { response.append(line); } reader.close(); is.close(); // 处理响应结果 String result = response.toString(); ``` 其中,params 变量为需要提交的参数,格式为 key=value&key=value。在设置请求参数时,Content-Type 设置为 application/x-www-form-urlencoded 表示提交的参数格式为表单形式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值