后台搭建与Android进行数据传输

后台springboot

首先没有环境的安装吧   maven   STS  ,参考:https://blog.csdn.net/weixin_42267411/article/details/80899895

新建项目 参考:https://blog.csdn.net/whz00000/article/details/79977110

我的项目

后台搭建与Android进行数据传输_第1张图片

UserController

package com.cn.wewin.sojourner.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
public class UserController {
	
	@RequestMapping("/hello")
	public String hello(String from) {
		return "hello "+from +" returned by server";
	}
}

实际在使用时就按照ssm那样可以和mybatis结合

 

在Android端使用后台接口

先去看看OKGO框架吧https://github.com/jeasonlzy/okhttp-OkGo    

以及一些使用例子https://www.jianshu.com/p/6aa5cb272514

 

以下是我的代码

首先引入框架

后台搭建与Android进行数据传输_第2张图片后台搭建与Android进行数据传输_第3张图片

新建一个类继承Application  里面可以初始化OKGO

  GApp

package com.example.sojournerapplication.com.edu.cqjtu.configuration;

import android.app.Application;

import com.lzy.okgo.OkGo;
import com.lzy.okgo.cookie.CookieJarImpl;
import com.lzy.okgo.cookie.store.MemoryCookieStore;
import com.lzy.okgo.interceptor.HttpLoggingInterceptor;

import java.util.concurrent.TimeUnit;
import java.util.logging.Level;


import okhttp3.OkHttpClient;

public class GApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        //        OkGo.getInstance().init(this); //最简单的配置 什么都不需要写 全部使用默认参数
        OkHttpClient.Builder builder = new OkHttpClient.Builder();
        //可以使用OkGo内置的log拦截器打印log,如果你觉得不好用,也可以自己写个,这个没有限制。
        HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor("OkGo");
        //log打印级别
        loggingInterceptor.setPrintLevel(HttpLoggingInterceptor.Level.BODY);
        //log颜色级别
        loggingInterceptor.setColorLevel(Level.INFO);
        builder.addInterceptor(loggingInterceptor);
        //全局的读取超时时间
        builder.readTimeout(OkGo.DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS);
        //全局的写入超时时间
        builder.writeTimeout(OkGo.DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS);
        //全局的连接超时时间
        builder.connectTimeout(OkGo.DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS);
        /*
     *  connectTimeout:指客户端和服务器 建立通道 的时间
        writeTimeout:客户端把数据写出去需要的时间
        readTimeout:客户端等待服务器返回数据的时间
        * */
        //使用内存保持cookie,app退出后,cookie消失
        builder.cookieJar(new CookieJarImpl(new MemoryCookieStore()));

        OkGo.getInstance().init(this)//必须调用初始化
                .setOkHttpClient(builder.build())  //建议设置OkHttpClient,不设置将使用默认的
                .setRetryCount(1); //超时重连,本身1次,我这边设置1次,总共2次访问
    }
}

然后再AndroidManifest.xml里的application标签下配置   我这里是包名加类名,别人是直接写的类名

后台搭建与Android进行数据传输_第4张图片

然后在你需要post或get请求时调用OkGo.get()    或OkGo.post()    传入参数即可

例:请求上面的springboot后端的接口

OkGo.get("http://localhost:8080/user/hello?from='Android'")
                .tag(this)
                .execute(new StringCallback(){

                    @Override
                    public void onSuccess(Response response) {
                        Log.e(TAG,"返回 : "+response.body().toString());
                    }
                    //这个方法默认是空实现,需要自己重写出来,不然你访问出了错你只能打印库中给你提供的打印日志
                    @Override
                    public void onError(Response response) {
                        super.onError(response);
                    }
                });

execute里面的回调有很多种,自己看着选择然后实现对应的方法。

   在此处使用StringCallBack时要加,不知道为啥,不然红线

   最后控制台可以看到输出

后台搭建与Android进行数据传输_第5张图片

你可以把取到的数据在页面显示了

你可能感兴趣的:(个人问题)