package com.yzw.apitest.service;
import com.alibaba.fastjson.JSONObject;
import com.yzw.apitest.utils.ParamUtil;
import okhttp3.*;
import org.springframework.stereotype.Component;
import java.io.*;
import java.util.HashMap;
@Component
public class OkHttpService {
private OkHttpClient okHttpClient;
public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
public OkHttpService() {
okHttpClient = new OkHttpClient();
}
public String doGet(String host, String api, HashMap<String,String> paramMap) throws IOException {
String url = host + api;
String result = "";
Request request;
if (paramMap.size()>0) {
try {
url = host + api + ParamUtil.urlString(paramMap);
}catch (Exception e){
e.printStackTrace();
result = "参数格式不正确" + e.getMessage();
}
}
System.out.println("url is :" + url);
request = new Request.Builder()
.url(url)
.build();
try {
result = okHttpClient.newCall(request).execute().body().string();
} catch (IOException e) {
e.printStackTrace();
result = e.getMessage();
}
return result;
}
public String doPost(String host, String api, HashMap<String, Object> params, String headers) throws IOException {
String url = "";
String result = "";
Request request;
RequestBody requestBody;
url = host + api;
JSONObject json = new JSONObject(params);
//常规的参数请求
if (headers == null || "".equals(headers)) {
FormBody.Builder temp = new FormBody.Builder();
for (String key : params.keySet()){
temp.add(key, (String) params.get(key));
}
requestBody = temp.build();
request = new Request.Builder().url(url).post(requestBody).build();
}
//requestbody请求
else if (headers.contains("application/json")){
requestBody = RequestBody.create(JSON, json.toJSONString());
request = new Request.Builder().
addHeader("Content-Type", "application/json;charset=UTF-8")
.url(url)
.post(requestBody)
.build();
}else {
return "暂未处理的header类型";
}
try {
result = okHttpClient.newCall(request).execute().body().string();
} catch (IOException e) {
e.printStackTrace();
result = e.getMessage();
}
return result;
}
// public String doHttpRequest(String host, TestCases testCases){
// String method = testCases.getMethod();
// OkHttpUtil okHttpUtil = new OkHttpUtil();
// String result;
// switch (method){
// case "GET": {
// try {
// result = okHttpUtil.doGet(host, testCases.getApi(), testCases.getParams());
// } catch (IOException e) {
// e.printStackTrace();
// result = e.getMessage();
// };
// break;
// }
// case "POST": {
// Map<String, Object> postParamMap = null;
// try {
// postParamMap = ParamsUtil.toMap(testCases.getParams());
// } catch (Exception e) {
// result = e.getMessage();
// e.printStackTrace();
// }
// try {
// result = okHttpUtil.doPost(host, testCases.getApi(), postParamMap, testCases.getHeaders());
// } catch (IOException e) {
// e.printStackTrace();
// result = e.getMessage();
// } ;
// break;
// }
// default:
// result = "test_cases表的method类型暂不支持";
// }
// return result;
// }
public static void main(String[] args) throws IOException {
// OkHttpUtil okHttpUtil = new OkHttpUtil();
// String s = okHttpUtil.doGet("http://localhost:8090", "/user/getUser/1", "");
// System.out.println("==================" + s);
// OkHttpUtil okHttpUtil1 = new OkHttpUtil();
//
// Map<String, Object> param = new HashMap<String, Object>();
// param.put("id", "1");
// param.put("name", "okhttp");
// param.put("code", "234234");
// String s1 = okHttpUtil1.doPost("http://localhost:8090", "/service/update", param, "");
// System.out.println(s1);
File file = new File("PostTestCaseTemplate.java");
FileInputStream fileInputStream = new FileInputStream(file);
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
System.out.println(bufferedReader.readLine());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】:包含前端、后端、移动开发、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源,毕业设计等各种技术项目的源码。包括C++、Java、python、web、C#、EDA等项目的源码。 【适用人群】:适用于希望学习不同技术领域的初学者或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
基于okhttp做接口测试,自带生成测试用例模板和数据库操作.zip (39个子文件)
ApiTestNew-new
pom.xml 3KB
src
test
java
com
yzw
apitest
MyTestApplicationTests.java 533B
cases
portal
getUserBasicInfoByJcUserInfoTest.java 3KB
userRegisterTest.java 3KB
GenerateTestCode.java 5KB
FuncationATest.java 690B
main
resources
application.yml 129B
java
com
yzw
apitest
utils
ParamUtil.java 666B
service
OkHttpService.java 5KB
JdbcService.java 5KB
entity
Base.java 274B
portal
User.java 976B
MyTestApplication.java 749B
config
DBConfig.java 391B
RPCGetTestCaseTemplate.java 2KB
.idea
uiDesigner.xml 9KB
workspace.xml 17KB
misc.xml 513B
compiler.xml 692B
encodings.xml 186B
target
classes
application.yml 129B
META-INF
MyTest.kotlin_module 16B
com
yzw
apitest
utils
ParamUtil.class 2KB
MyTestApplication.class 892B
service
JdbcService.class 5KB
OkHttpService.class 5KB
entity
portal
User.class 14KB
Base.class 4KB
config
DBConfig.class 3KB
test-classes
META-INF
MyTest.kotlin_module 16B
com
yzw
apitest
MyTestApplicationTests.class 523B
cases
FuncationATest.class 1KB
GenerateTestCode.class 5KB
portal
userRegisterTest.class 4KB
getUserBasicInfoByJcUserInfoTest.class 3KB
RPCPostTestCaseTemplate.java 2KB
MyTest.iml 80B
PostTestCaseTemplate.java 880B
GetTestCaseTemplate.java 837B
共 39 条
- 1
资源评论
白话Learning
- 粉丝: 4601
- 资源: 2986
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功