范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

okhttp网络框架的封装easyokhttp

  easy-okhttp是对okhttp3上层封装的网络框架,支持文件上传和下载表单提交(文件和一个参数对应多值),链式调用,并且默认整合Gson,对返回结果多种转换,同时还支持HTTPS单向认证和双向认证等特性。
  okhttp3网络框架的流行始于Android,但是在Java后端仍然是Apache HttpClient网络框架,这个框架的缺点在于设计非常的复杂,而且Jar包比较大。因此封装easy-okhttp网络框架是降低对网络操作的难度,更是希望弃用Apache HttpClient,其次也是为了帮助 okhttp3 的推广。
  框架特性仅支持GET和POST两种方式,其他如PUT等不太常用,就暂不支持基于POST的大文本数据、二进制文件上传,即通过Http Body提交表单提交,带有文件的表单提交和表单提交支持参数名重复,在后台接收到的是数组或集合支持session保持对HTTPS支持单向认证和双向认证支持同步请求和异步请求,统一的数据处理接口开箱即用,默认的配置基本上满足需求
  框架引入
  Maven之下<dependency>
  <groupId>com.mzlion</groupId>
  <artifactId>easy-okhttp</artifactId>
  <version>1.0.0-Final</version>
  </dependency>
  Gradle之下compile "com.mzlion:easy-okhttp:1.0.7-beta"
  用法示例
  1.普通的GET请求无参数 String responseData = HttpClient
  .get("http://localhost:8080/okhttp-server-test/userInfo/pageSelect")
  // 请求方式和请求url .execute()
  .asString();
  2.普通的GET请求带参数String responseData = HttpClient
  .get("http://localhost:8080/okhttp-server-test/userInfo/pageSelect")
  //请求方式和请求url
  .queryString("username","mzlion") //设置请求参数
  .execute()
  .asString();
  3.POST普通表单提交String responseData = HttpClient
  .post("http://localhost:8080/okhttp-server-test/userInfo/create")
  //请求方式和请求url
  .param("username","mzlion") // 表单参数
  .param("userPwd", "123") // 表单参数
  //queryString("queryTime","20160530") //url参数
  .execute()
  .asString();
  //formParam()重载方法还支持`Map`
  4.POST提交StringString responseData = HttpClient
  .textBody("http://localhost:8080/okhttp-server-test/userInfo/create")
  // 请求方式和请求url
  .json("{\"username\":\"mzlion\",\"userPwd\":\"123\"}")
  // post提交json
  //.xml("")
  //post提交xml
  //.html("function fun(){}")
  //post提交html
  //.charset("utf-8")
  //设置编码
  .execute()
  .asString();
  5.POST提交二进制文件 String responseData = HttpClient
  .binaryBody("http://localhost:8080/okhttp-server-test/userInfo/avatar")
  // 请求方式和请求url
  .stream(this.getClass().getClassLoader().getResourceAsStream("andy-bao.jpg"))
  // post提交流
  //.file(new File("d:/andy-bao.jpg")) //post提交文件
  .contentType(ContentType.IMAGE_JPG)
  //设置请求内容类型
  .execute()
  .asString();
  //ContentType内置常见的MIME类型,基本上不用自己创建了
  6.POST表单提交含文件上传String responseData = HttpClient
  .formDataPost("http://localhost:8080/okhttp-server-test/userInfo/createWithFile")
  //请求方式和请求url
  .param("userName", "test")
  .param("userPwd", "123456")
  .param("nickName", "Test")
  .param("realName", "测试")
  .param("hobby", "测试,就爱测试")
  .param("avatarFile", this.getClass().getClassLoader().getResourceAsStream("andy-bao.jpg"), "andy-bao.jpg")
  //.formParam("avatarFile", this.getClass().getClassLoader().getResourceAsStream("andy-bao.jpg"), "andy-bao.jpg")
  .execute()
  .asString();
  //formParam()重载方法还支持`Map`
  7.自定义签名网站https访问
  >自签名网站htts访问处理方式非常简单,首先拿到客户端的签名证书,一般通过浏览器就可以导出xxx.cer证书了。然后将拿到的证书文件拷贝到自己的项目中,然后按照如下方式调用或设置。 String responseData = HttpClient.get()
  //设置请求方式
  .url("https://kyfw.12306.cn/otn/")
  //设置请求地址
  .readTimeout(30000) //覆盖设置,读取超时时间
  .https(this.getClass().getClassLoader().getResourceAsStream("SRCA.cer"))
  .execute() //执行
  .asString();

罗技MX智能键鼠新装备一套旗舰装备,一种全新体验新年新装备,对于我这种打工人来说,新的一年最重要的便是提升办公的幸福感,毕竟无论剪视频还是写文章,都离不开每次一键盘敲击,而一款舒适的键鼠套装,不仅能够提升每次的敲击感受,触发我的贵阳标致408购车优惠1。8万元欢迎试乘试驾工作的不顺心,生活的烦恼,是时候换辆车改变一下心情了,近期贵州钟裕东风标致店即日起到11月05日,限时特惠1。8万元,期待您的光临促销时间2021年11月03日至2021年11月0MOBIUZEX2710Q为游戏而生,全方位打造沉浸式游戏显示器游戏沉浸,讲究的是氛围,一方面是游戏环境的营造,另一方面则是桌面的打造,很多游戏玩家喜欢通过炫酷的RGB光污染营造氛围,但这远远不够,相比于灯光氛围的营造显示器作为游戏视觉的窗口,买乐视耳机享以旧换新最高立省111元!快来呀2021年新年伊始,乐视就高调的推出了它的第一款搭载主动降噪功能的真无线蓝牙耳机Earspro,并有黑白两种颜色可选。随后,性价比炸街,续航备受夸赞的无线蓝牙耳机L18也与大家见面出门找工作的一天今天是我来上海第六天啦,今天一早起来我就梳洗好准备去面试,前几天在网上看到一家化妆品公司在招聘销售员,我以前在老家也是做护肤类的工作,也做过销售,所以我看到了我就投了一份简历,没想中兴MyOS系统评测细品之下的真香,以偏概全要不得对于硬件堆满,配置挑不出毛病的中兴来说,我们用户的关注点自然由配置转向了系统,那么MyOS能否满足我们的日常体验又能够带来哪些隐藏彩蛋,现在我们便来用一篇文章盘一盘。本次使用评测的野小兽P30跑步机健身界的扛把子春天来了,天气变暖,T恤短裤马上就要安排上了。那么问题来了,小伙伴们,你们准备好了吗?为了在这个夏天露出完美的肌肉线条(其实就是不想被看出太胖),科科准备快马加鞭地练起来,入手了野在家运动新方式野小兽R40划船机测评最近北京的冬天实在是太太太冷了,出去一趟就要冻成冰棍。周末基本上窝在家里不出门,工作日下班后也是赶紧回家,根本不想去健身房,户外锻炼更不可能了所以我不禁思考要不买个设备直接在家练。酷米大战,手机界的一代目与二代目之争中国智能手机行业的崛起,离不开厂家之间的竞争,每个快速发展阶段都有着一位助推者。手机界的一代目主打硬件透明的小米在小米手机还没问世的那些年,智能手机行业只是刚刚起步,大多数人还在使Python入门100题之010统计字母数字题目输入一行字符串,统计字母和数字。视频讲解Python入门100题之010统计字母数字代码1lineinput(输入一行字符串)DIGITS,LETTERS0,0forcinliPython入门100题之006用类方法输入输出题目定义一个类,一个方法输入字符串S,另一个方法输出大写的S视频讲解Python入门100题之006用类方法输入输出代码1classInputOutStringdefgetstri
长安版哈弗F7,数据虚标仍旧火爆,已连续4个月销量破万如今对很多国产汽车品牌而言,在SUV市场中打造一台爆款SUV已经不是什么难事。比如长城的子品牌哈弗,在哈弗H6的带动下,哈弗F7哈弗M6等车型也迅速成为市场的宠儿。同时,由它们三者轩逸别高兴太久,全面革新的换代伊兰特来了,双屏大幅提升质感最近我们惊奇的发现,汽车市场已经恢复到比往日更巅峰的水准,不信咱们来看轿车市场销量,以7月份为例,日产轩逸售出44236辆,而从最新得到的8月份销量来看,轩逸售出46901辆,同比2020北京车展众星云集,新宝骏E300才是最大赢家北京车展一向是重磅的汽车嘉年华,本届车展以智领未来为主题,极富科技感的智慧产品自然是这场嘉年华的重心。展台围观的人流量一向是评判一款车型受欢迎程度的重要指标,而跨界智能大家电新宝骏福特打造的大SUV,宽2米轴距3米,但坐垫为何那么短?如果想要选到物美价廉的合资车,很多人第一时间想到的还是韩系车,但其实除了韩系以外还有很多另一个派别的车型可选,那就是美系车。美系品牌中像是豪华品牌凯迪拉克就一直以降价而闻名,而另一全世界畅销的宝骏530,将推限量版,还有高级的哈瓦那灰配色在大七座SUV领域中,汉兰达无疑是一个绕不开的名字。因为汉兰达上市多年,累计的高品质口碑都像是给汉兰达镀了一层金衣,使其能保持着高销量。但是,汉兰达这些年的价格对于咱们老百姓来说,如何用Mac电脑恢复安卓手机数据软件?MacFoneLabforAndroidMacFoneLabforAndroid功能介绍想恢复Android手机上的丢失的文件?尝试这种快速,功能强大且易于使用的Android文件恢复软件。它使您能够在Android手机一款非常有趣的无衬线字体艺术儿童装饰字体Mac艺术儿童装饰字体分享儿童艺术装饰字体,这款儿童字体是一款非常有趣的无衬线字体,适用于创建幼儿园或儿童艺术印刷品,报价装饰,品牌,徽标或卡片和文具!本站提供mac字体安装教程,python教程之抖音同款表白神器Python让你的七夕更完美又到了一年一度的七夕!大家都准备送什么给自己心仪的对象呢?今天给大家带来python教程之抖音同款表白神器Python让你的七夕更完美!PyCharmproforMac(Pytho想要防止电脑数据外泄?想要阻止恶意软件访问你的应用程序?软件介绍想要防止电脑数据外泄?想要阻止恶意软件访问你的应用程序?CisdemAppCrypt破解版推荐给大家,只需使用CisdemAppCrypt即可在Mac上创建理想的工作环境。如何删除Mac电脑中的第三方字体?Mac电脑中的第三方字体如何管理?Mac电脑中有一个专门管理Mac字体的应用程序,你不知道在哪?没关系,你可以使用快捷键组合AltSpaceBar,在搜索框内输入字体册即可!今天给卖掉轩逸提RM5,11万就可落地顶配,一上车就有适宜温度早在年前我们家迎来了第六位成员时,我就打算把家里的轩逸换成一台更大的六座或七座车了,但当时考虑到小儿子才刚出生,基本不会带他出门,所以就觉得六座或七座车对于我们来说还算不上是刚需,