okHttp调用使用方法与工具类方式写的附带单元测试方法

使用步骤
1最好能了解这玩意的基本原理,不了解也没关系粘贴过去就行了,实在不行创建个demo,连上网按照顺序复制粘贴过去跑起来就行了
顺序 单元测试@Test(controller)->service层->impl层->okhttp工具类(直接丢实现类里面也行,爱咋写咋写)
废话不多说,上图,代码在最后

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完整代码部分–分好类文件,直接粘贴过去用就行了,当postman用,我试过的没问题


***## 单元测试类***其实就是controller

@SpringBootTest(classes = DemoApplication.class)
class DemoApplicationTests {
   @Test
     void getShuiWuToken() throws Exception {
         //有token 就放这里
         String token="null";
         //接口地址
         String address="http://xxxx.xxxx.xxxx:8088/api/login/token";
         //请求参数的集合
         Map<String,Object> reqBody= new HashMap<>();
         //请求参数的内容--入参
         reqBody.put("账号","123456");
         //请求头集合
         Map<String,Object> reqHeader = new HashMap<>();
         //调用接口类里面方法
         JSONObject a = okhttpService.okhttpPost( token, address, reqBody, reqHeader);
         System.out.println("aaaaa---"+a);
     }
}

# 接口类

public interface OkhttpService {
     JSONObject okhttpPost(String token, String address, Map<String,Object> reqBody, Map<String,Object> reqHeader) throws Exception;
}

##实现类

@Service
public class OkhttpServiceImpl implements OkhttpService {

    @Override
    public JSONObject okhttpPost(String token, String address, Map<String,Object> reqBody, Map<String,Object> reqHeader) throws Exception {
        JSONObject resJsObData =   HttpCllientUtils.toPost( token,  address,  		reqBody,  reqHeader);
        return resJsObData;
    }
}


## 工具类(重点)

public class   HttpCllientUtils {
    public  static JSONObject toPost (String token,String address,Map<String,Object> reqBody,Map<String,Object> reqHeader) throws Exception{
        OkHttpClient mOkHttpClient = new OkHttpClient();
        ObjectMapper OM = new ObjectMapper();
        Map<String, Object> body = new HashMap<>();
        //遍历请求参数map集合 放到请求体body中
        for(Object keyObj : reqBody.keySet() ){
            String key = (String) keyObj;
            body.put(key,reqBody.get(key));
        }
        //设置参数接收方式
        MediaType JSON = MediaType.parse("application/json;charset=utf-8");
        //创建请求体
        RequestBody requestBody = RequestBody.create(JSON, OM.writeValueAsString(body));
        Headers seteaders = null;
        okhttp3.Headers.Builder headersbuilder = new okhttp3.Headers.Builder();
        //遍历请求参数map集合 放到请求体body中
        for(Object keyObj : reqHeader.keySet() ){
            String key = (String) keyObj;
            headersbuilder.add(key,reqHeader.get(key).toString());
        }
        seteaders = headersbuilder.build();
        Request request = new Request.Builder()
                .post(requestBody)
                .url(address)
                .headers(seteaders)
                .build();
        JSONObject resultJso=null;
        try (Response response = mOkHttpClient.newCall(request).execute()) {
            String Str = response.body().string();
            System.out.println("1111-----"+Str);
            resultJso = JSONObject.fromObject(Str);
            System.out.println("2222---------:"+resultJso);

        } catch (Exception e) {
            e.printStackTrace();
        }
        return resultJso;
    }
}

好了就这么多,连上网就能用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值