当前位置: 首页 > news >正文

泉州网站建设报价建网站找哪家公司

泉州网站建设报价,建网站找哪家公司,菲斯曼售后服务中心,校园网自助网站一、 Retrofit是什么 Retrofit是Android用来接口请求的网络框架#xff0c;内部是基于OkHttp实现的#xff0c;retrofit负责接口请求的封装#xff0c;retrofit可以直接将接口数据解析为Bean类、List集合等#xff0c;直接简化了中间繁琐的数据解析过程 二、 Retrofit的简单…一、 Retrofit是什么 Retrofit是Android用来接口请求的网络框架内部是基于OkHttp实现的retrofit负责接口请求的封装retrofit可以直接将接口数据解析为Bean类、List集合等直接简化了中间繁琐的数据解析过程 二、 Retrofit的简单使用 Retrofit在github的地址 https://github.com/square/retrofitRetrofit官方使用介绍 https://square.github.io/retrofit/ 2.1 在项目中引入retrofit implementation com.squareup.retrofit2:retrofit:2.9.0implementation com.squareup.retrofit2:converter-gson:2.9.0//解析json字符所用2.2 清单文件AndroidManifest.xml中添加网络权限 uses-permission android:nameandroid.permission.INTERNET/Google在Android p为了安全起见,已经明确规定禁止http协议额接口都是https请忽略如果接口有http请在清单文件AndroidManifest.xml中application先添加networkSecurityConfig配置 applicationandroid:name.Appandroid:allowBackuptrueandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:networkSecurityConfigxml/network_security_configandroid:requestLegacyExternalStoragetrueandroid:supportsRtltrueandroid:themestyle/AppThemetools:ignoreUnusedAttributeres文件夹下新建xml文件夹xml文件夹中新建network_security_config文件文件内容如下 ?xml version1.0 encodingutf-8? network-security-configbase-config cleartextTrafficPermittedtrue / /network-security-config2.3 创建Retrofit Retrofit retrofit new Retrofit.Builder().baseUrl(https://api.github.com/).addConverterFactory(GsonConverterFactory.create())//设置数据解析器.build();2.4 创建RetrofitApi //定义 网络API 地址 public interface RetrofitApi{GET(users/{user}/repos)CallListUser getData(Path(user) String user); }2.5 请求接口 //获取API GitHubService service retrofit.create(RetrofitApi.class);CallListUser call service.getData(user);2.6 发送请求数据 //异步call.enqueue(new CallbackListUser() {Overridepublic void onResponse(CallListUser call, ResponseListUser response) {//处理请求数据}Overridepublic void onFailure(CallListUser call, Throwable throwable) {}});//同步try {ResponseListUser execute call.execute();execute.body().toString();} catch (IOException e) {e.printStackTrace();}三、Retrofit注解参数类型 3.1 网络请求方法 3.1.1 GET请求 //简单的get请求(没有参数)GET(user)CallUserInfo getItem();//简单的get请求(URL中带有参数)GET(News/{userId})CallTradesBean getItem(Path(userId) String userId);//参数在url问号之后GET(trades)CallTradesBean getItem(Query(userId) String userId);//get请求多个请求参数GET(trades)CallTradesBean getItem(QueryMap MapString, String map);GET(trades)CallTradesBean getItem(Query(userId) String userId,QueryMap MapString, String map);//get请求不使用baseUrl直接请求url地址GETCallTradesBean getItem(Url String url,QueryMap MapString, Object params);3.1.2 POST请求 http://192.168.43.173/api/trades/{userId} //需要补全URL,post的数据只有一条reasonFormUrlEncodedPOST(trades/{userId})CallTradesBean postResult(Path(userId) String userId,Field(reason) String reason;http://192.168.43.173/api/trades/{userId}?token{token} //需要补全URL,问号后需要加token,post的数据只有一条reasonFormUrlEncodedPOST(trades/{userId})CallTradesBean postResult(Path(userId) String userId,Query(token) String token,Field(reason) String reason;//post一个对象POST(trades/{userId})CallTradesBean postResult(Path(userId) String userId,Query(token) String token,Body TradesBean bean;//post请求不使用baseUrl直接请求url地址FormUrlEncodedPOSTCallTradesBean postResultl(Url String url,FieldMap MapString, Object params);3.2 标记类 3.2.1 FormUrlEncoded 作用表示发送form-encoded的数据FieldMap必须与 FormUrlEncoded 一起配合使用 3.2.2 Multipart 作用表示发送form-encoded的数据适用于 有文件 上传的场景每个键值对需要用Part来注解键名随后的对象需要提供值。 MultipartPOSTCallResponseBody uploadFiles(Url String uploadUrl,Part MultipartBody.Part file);3.2.3 Steaming 表示数据以流的形式返回大文件官方建议用 Streaming 来进行注解不然会出现IO异常小文件可以忽略不注入 /*** 大文件官方建议用 Streaming 来进行注解不然会出现IO异常小文件可以忽略不注入** param fileUrl 地址* return ResponseBody*/StreamingGETCallResponseBody downloadFile(Url String fileUrl);3.3 网络请求类 3.3.1 Header Headers 添加请求头 添加不固定的请求头 // Header GET(user) CallUser getUser(Header(Authorization) String authorization)// Headers Headers(Authorization: authorization) GET(user) CallUser getUser()// 以上的效果是一致的。 // 区别在于使用场景和使用方式 // 1. 使用场景Header用于添加不固定的请求头Headers用于添加固定的请求头 // 2. 使用方式Header作用于方法的参数Headers作用于方法 3.3.2 Body 以 Post方式 传递 自定义数据类型 给服务器Body会将请求参数放到请求体中所以适用于POST请求Body相当于多个Field,以对象的方式提交Body 提交的提交的Content-Type 为application/json; charsetUTF-8Body标签不能和FormUrlEncoded或Multipart标签同时使用会报错 3.3.3 Field FieldMap 发送 Post请求 时提交请求的表单字段FieldMap必须与 FormUrlEncoded 一起配合使用提交的Content-Type 为application/x-www-form-urlencoded 3.3.4 Part PartMap 发送 Post请求 时提交请求的表单字段 与Field的区别功能相同但携带的参数类型更加丰富包括数据流所以适用于 有文件上传 的场景与 Multipart 注解配合使用 3.3.5 Query和QueryMap 用于 GET 方法的查询参数Query Url 中 ‘?’ 后面的 key-value //参数在url问号之后GET(trades)CallTradesBean getItem(Query(userId) String userId);3.3.6 Path URL地址的缺省值 GET(users/{user}/repos)CallResponseBody getBlogPath(user) String user ;// 访问的API是https://api.github.com/users/{user}/repos// 在发起请求时 {user} 会被替换为方法的第一个参数 user被Path注解作用3.3.7 Url 直接传入一个请求的 URL变量 用于URL设置 GETCallResponseBody testUrlAndQuery(Url String url, Query(showAll) boolean showAll);// 当有URL注解时GET传入的URL就可以省略// 当GET、POST...HTTP等方法中没有设置Url时则必须使用 {link Url}提供下一篇文章总结一下RetrofitRxjava封装成网络请求库
http://www.pierceye.com/news/588209/

相关文章:

  • 精湛的佛山网站设计太原网站建设培训
  • 邹城市住房和建设局网站深圳比较好的vi设计公司
  • 企业网站建设维护方案一元购物网站怎么做
  • 网站建设优化公司哪家好兰州做网站公司es5188
  • jsp网站开发工资住建网查询
  • 长沙建网站需要多少钱夹江移动网站建设
  • 淄博网站制作高端网站后台任务
  • 营销型网站源码成都网站建设seo
  • 天津网上商城网站建设专业的猎头公司
  • 西平县住房城乡建设局网站西部数码网站管理助手3.0
  • 承德市网站建设WordPress电影资源分享下载站
  • 专注于网络推广及网站建设wordpress离线发布功能
  • 营销型网站案例提高wordpress打开速度
  • 怎么样做一个网站自己个人网站后台怎么做
  • 源码站免费找客户网站
  • idc空间商网站源码知名的网站建设
  • 什么叫网站降权建设网站租服务器
  • 网站后台模板怎样使用站长平台
  • 写一个app需要多少钱龙岩seo包年系统排行榜
  • 科技公司企业网站建设手机360网站seo优化
  • 做翻译 英文网站黑色时尚橱柜网站源码
  • wordpress 主机要求珠海百度推广优化
  • 台山网站建设哈尔滨网站建设收费
  • 卖主机 服务器的网站wordpress自动标签内联
  • 28创业商机网seo在线优化技术
  • 建设银行网站查询余额世界杯球队最新排名
  • 网站对联广告做戒指网站的logo照片
  • 网站开发 项目计划书网页设计产品介绍页面的制作
  • 专做正品 网站青岛 网站制作
  • wordpress建站镜像杭州网站开发公司排名