AndroStudio开发:
使用时需先导入okhttp3依赖:
com.squareup.okhttp3:okhttp:3.4.1
依赖导入步骤:
File–》 ProjectStructure——》Dependencies–》All Modules–》右侧“+”号–>Library Dependency–>输入依赖名找到并安装即可
依赖导入完成后复制下方工具类代码到一个类中,使用时调用即可:
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
public class HttpUtil {
//提供一个静态方法,当别的地方需要发起网络请求时,简单的调用这个方法即可
//请求实例
//OKHttp请求
//callback是okhttp自带的回调接口,这里写的是使用GET方式获取服务器数据
public static void sendOkHttpRequest(final String address, final Callback callback){
OkHttpClient client=new OkHttpClient();
Request request=new Request.Builder()
.url(address)
.build();
//enqueue方法内部已经帮助我们开启好了线程,最终的结果会回调到callback中
client.newCall(request).enqueue(callback);
}
//使用POST方式向服务器提交数据并获取返回提示数据
public static void sendOkHttpResponse(final String address,
final RequestBody requestBody, final Callback callback){
OkHttpClient client=new OkHttpClient();
//JSONObject这里是要提交的数据部分
Request request=new Request.Builder()
.url(address)
.post(requestBody)
.build();
client.newCall(request).enqueue(callback);
}
//使用DELETE方式向服务器提交数据并获取返回提示数据
public static void sendOkHttpDelete(final String address
,final Callback callback){
OkHttpClient client=new OkHttpClient();
//JSONObject这里是要提交的数据部分
Request request=new Request.Builder()
.url(address)
.delete()
.build();
client.newCall(request).enqueue(callback);
}
//使用PUT方式向服务器提交数据并获取返回提示数据
public static void sendOkHttpPUT(final String address,
final RequestBody requestBody ,final Callback callback){
OkHttpClient client=new OkHttpClient();
//JSONObject这里是要提交的数据部分
Request request=new Request.Builder()
.url(address)
.put(requestBody)
.build();
client.newCall(request).enqueue(callback);
}
}
根据参数不同进行不同的传输类型(GET、POST、PUT、DELETE)
使用举例:
HttpUtil.sendOkHttpRequest(URL+"sys/getcode/" +username, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
System.out.println(e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String responseData=response.body().string();
orgcode =responseData;
}
});
向后台传递json数据举例
先定义json类型常量
public static final MediaType JSON=MediaType.parse("application/json; charset=utf-8");
public void showArea(String par2){
JSONObject jsonParam=new JSONObject();
try {
jsonParam.put("pname",par2);
} catch (JSONException e) {
e.printStackTrace();
}
String json = jsonParam.toString();
RequestBody requestBody=RequestBody.create(JSON,json);
HttpUtil.sendOkHttpResponse(MainActivity.URL+"sys/getarea", requestBody, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
System.out.println(e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
final String data = response.body().string();
System.out.println(data);
}
}
});
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)