• Okhttp3发送xml、json、文件的请求方法


    1、引入依赖
    <dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>3.3.1</version>
    </dependency>
    1
    2
    3
    4
    5
    2、加入工具类
    package znxd.video.bank.base;

    import okhttp3.*;

    import java.io.File;

    /**
    * http请求工具类
    */
    public class Okhttp3Utils {

    /**
    * xml格式post请求接口调用
    * @param url 接口地址
    * @param xmlStr xml格式请求参数体
    * @return
    */
    public static String postXml(String url,String xmlStr){
    RequestBody body=RequestBody.create(MediaType.parse("application/xml"),xmlStr);
    Request requestOk = new Request.Builder()
    .url(url)
    .post(body)
    .build();

    Response response;
    try {
    response = new OkHttpClient().newCall(requestOk).execute();
    String jsonString = response.body().string();
    if(response.isSuccessful()){
    return jsonString;
    }
    } catch (Exception e) {
    e.printStackTrace();
    return e.getMessage();
    }
    return "";
    }

    /**
    * get请求接口,返回json
    * @param url 接口地址
    * @return
    */
    public static String getJson(String url){
    // RequestBody body=RequestBody.create(MediaType.parse("application/json"),"");
    Request requestOk = new Request.Builder()
    .url(url)
    .get()
    .build();

    Response response;
    try {
    response = new OkHttpClient().newCall(requestOk).execute();
    String jsonString = response.body().string();
    if(response.isSuccessful()){
    return jsonString;
    }
    } catch (Exception e) {
    e.printStackTrace();
    return e.getMessage();
    }
    return "";
    }


    /**
    * 发送文件
    * @param url 请求接口地址
    * @param uploadDir 参数上传目录
    * @param baseFileUrl 文件保存基准路径
    * @param relativeUrl 文件保存的相对路径
    * @return 接口返回值
    * 该方法前端以formData格式传入,包括文件和参数,可一起传入。
    */
    public String uploadFilePost(String url,String uploadDir,String baseFileUrl,String relativeUrl){

    File temporaryFile = new File(baseFileUrl+relativeUrl);
    if(!temporaryFile.exists()){
    return "";
    }
    RequestBody requestBody = new MultipartBody.Builder()
    .addFormDataPart("uploadDir", uploadDir) //参数一,可注释掉
    .addFormDataPart("fileUrl", relativeUrl) //参数二,可注释掉
    .addFormDataPart("file", temporaryFile.getName(), RequestBody.create(MediaType.parse("application/octet-stream"),temporaryFile)) //文件一
    .build();
    Request requestOk = new Request.Builder()
    .url(url)
    .post(requestBody)
    .build();

    Response response;
    try {
    response = new OkHttpClient().newCall(requestOk).execute();
    String jsonString = response.body().string();
    // temporaryFile.delete();
    if(response.isSuccessful()){
    return jsonString;
    }
    } catch (Exception e) {
    e.printStackTrace(http://www.my516.com);
    }
    return "";
    }
    }


    --------------------- 

  • 相关阅读:
    数据库范式那些事[转]
    C# 之值类型与引用类型参数[基础]
    C# 实体类生成工具
    《浅谈线程池》笔记
    提高网站性能之 —— 减少图片HTTP 请求的方案
    SQL Server 2005 For XML[学习]
    关于数据类型导致的精确计算
    SQL Server 数据库实现之TSQL语句[备忘]
    C# 关键字ref 和out 的详细区别
    关于XML中的名称空间
  • 原文地址:https://www.cnblogs.com/hyhy904/p/11007495.html
Copyright © 2020-2023  润新知