欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java okhttp3 使用(持续更新)

程序员文章站 2024-02-19 12:19:10
...

关于技术文档官网介绍得比较清楚了,我就不累赘了,下面给出我自己的一个使用案例。
**需求:**Java 代码内部访问其他服务器(带http、https),需要其他服务器实现某功能,然后返回数据给Java当前项目。
**分析:**首先需要明白访问的数据格式,其次是如何连接上目标服务器,然后如何接收数据,我的需求是发送一段文本给目标服务器,目标服务器返回处理结果。
环境:Java 1.8、OKHTTP3、spring boot
pom.xml依赖

		<dependency>
  			<groupId>com.squareup.okhttp3</groupId>
  			<artifactId>okhttp</artifactId>
  			<version>3.2.0</version>
		</dependency>

具体代码:

import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
//实例函数
	/**
	 * 直接post键值  "name" : "value"
	 * 
	 * */
	@Override
	public String post(String url , String params) {
		OkHttpClient client = new OkHttpClient();
		String anString = "";
		//组装键值,params为键值,name为属性名
		RequestBody formBody = new FormBody.Builder()
				.add("name", params)
				.build();
		//组装请求头
		Request request = new Request.Builder()
				.url(url)
				.post(formBody)
				.build();
		//该方法容易触发IOException异常
		try {
			//获取返回值
			Response response = client.newCall(request).execute();
			if(response.isSuccessful()) {
				anString += response.body().string();
			}else {
				anString+="error!";
			}
		}catch(IOException ie) {
			ie.printStackTrace();
		}
		return anString;
	}