导入maven包
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.7.0</version>
<!-- 在java中使用,要把android依赖排除掉-->
<exclusions>
<exclusion>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
</exclusion>
</exclusions>
</dependency>
直接上代码
@RequestMapping("/login")
public R login(){
//请求路径
String url="";
OkHttpClient client = new OkHttpClient();
String anString = "";
String cookie = null;
//组装键值,params为键值,name为属性名
RequestBody formBody = new FormBody.Builder()
//需要的参数(key,value的格式可以一直add)
.add("username", "INIT")
.add("password", "123")
.add("offset", "0")
.add("limit", "10000")
.build();
//组装请求头
Request request = new Request.Builder()
.url(url)
.post(formBody)
//设置请求cookie(如果当前调用的是登录请求去获取cookie就不需要这个)
.addHeader("Cookie", cookie)
.build();
//该方法容易触发IOException异常
try {
//获取返回值
Response response = client.newCall(request).execute();
//获取当前请求的cookie
if (response.isSuccessful()) {//response 请求成功
Headers headers = response.headers();
List<String> cookies = headers.values("Set-Cookie");
if (cookies.size() > 0) {
String session = cookies.get(0);
if (!StringUtils.isNullOrEmpty(session)) {
int size = session.length();
int i = session.indexOf(";");
if (i < size && i >= 0) {
//最终获取到的cookie
cookie = session.substring(0, i);
}
}
}
}
if(response.isSuccessful()) {
anString += response.body().string();
}else {
anString+="error!";
}
}catch(IOException ie) {
ie.printStackTrace();
}
return R.ok(anString);
}