当然你也可以自己借助 json-server 或 最新开源的Parse 搭建一个REST API,不过都需要安装Node.js,有兴趣的可以去试试。 接口列表: ?...测试1', content='这里是 Retrofit2 Demo 测试服务器1'},.....], count=20, page=1} 「20160608补充」:像上面的这种情况最后我们无法获取到返回的...其它类型的Converter,如果不能处理返回null // 主要用于对响应体的处理 public Converter<ResponseBody, ?...; } // 在这里创建 从自定类型到ResponseBody 的Converter,不能处理就返回null, // 主要用于对Part、PartMap、Body注解的处理...> 类型 // 不支持时返回null public abstract CallAdapter<?
同时也希望帮助和我一样在学习Retrofit2遇到困难的猿们。...当我在刚开始学习 Retrofit2 的时候并不知道Retrofit2是什么东西,后来逐渐了解 “它可能是一个方便我们网络请求的库 ,可以帮我们让请求网络变得更灵活、易于维护”。...需要注意的是converter-gson和retrofit版本号应为一致,在这里我都用2.1.0 创建Bean 创建一个JavaBean,用于解析服务器返回数据。...还有一些要求较高的请求,请看下节。 Retrofit2 大成 如果看到这里,相信对Retrofit2的基本请求会用了,那么这节就说一说其他的网络请求。...(null, "123456")); 也可以都塞Map里上传,也可以只在Map中上传文件,随你喽~ 文章结尾有参考链接。
Retrofit2 是目前Android开发主流的网络库,RxJava2也是目前开发者使用的比较多用来更优雅实现异步的库,因为最近业务需求有用到这两个库,就简单分享下它的一个实际使用场景—上传文件 [TOC...* * @param url 上传接口地址 * @param files 文件列表 * @param fileUploadObserver 文件上传回调...* * @param files 文件列表 * @param fileUploadObserver 文件上传回调 * @return MultipartBody...LogUtil.d(String.valueOf(progress)); } }); 笔者这里是上传到文件服务器,成功会返回对应的...总结 通篇代码实现很多,但可以看到使用Retrofit2和RxJava2的结合起来使用还是挺方便的,再也不用自己去控制线程的切换了,也不用去关注http的具体实现,少写了不少代码,实现起来也优雅不少,希望这篇文章能帮助到大家
在Retrofit1中使用的是RestAdapter,而Retrofit2中使用的Retrofit实例,之前的setEndpoint变为了baseUrl。...Retrofit2通过OKHttp的拦截器拦截http请求进行监控,重写或重试等,包括日志打印等。...Retrofit1体验不好的地方: Retrofit1不能同时操作response返回数据(比如说返回的 Header 部分或者 URL)和序列化后的数据(JAVABEAN)。...//主要用于响应体的处理,Factory中默认实现为返回null,表示不处理 @Override public Converter返回null,不能处理返回null *作用对象Part、PartMap、Body */ @Override public Converter<?
使用压力测试,我们有希望找到很多种用其他测试方法更难发现的错误。 有两种错误类型是:内存泄漏,并发与同步。 有效的压力测试系统将应用以下这些关键条件:重复,并发,量级,随机变化。...1、性能指标 响应时间(Response Time: RT) 响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响 应结束,整个过程所耗费的时间。...最少响应时间(Mininum ResponseTime) 指用户发出请求或者指令到系统做出反应(响 应)的最少时间。 ...90%响应时间(90% Response Time) 是指所有用户的响应时间进行排序,第 90%的响应时间。...从外部看,性能测试主要关注如下三个指标 吞吐量:每秒钟系统能够处理的请求数、任务数。 响应时间:服务处理一个请求或一个任务的耗时。
{ "success": true, "msg": "{'公司简称':[],'年份列表':[\"2016\",\"2015\",\"2014\"]}", "obj": null } 没错,这次的需求是,...然后我选择A公司的2016年,就可以给后台,后台再返回给其他内容。 首先我们可以看到,这个返回给我们的JSON真的是一塌糊涂。...我们来说下这种json的问题: 一般来说(可能是我开发到现在的项目是这样)我们都是把主要的数据信息放在obj里面,msg一般会返回一些提示,比如你获取数据失败了。可能提示你原因的文字说明等。...第一步: { "success": true, "msg": "{'公司简称':[],'年份列表':[\"2016\",\"2015\",\"2014\"]}", "obj": null } 我们看到{...Retrofit2 + Rxjava2。
简述 Retrofit2是square公司出品的一个网络请求库,网上有很多相关的介绍。...get请求 post请求 文件上传 文件下载 开启日志拦截 与RxJava结合使用 什么是Retrofit2 官网是这么介绍的: Retrofit adapts a Java...= null) { return mService; } return null; } } 这样就生成了一个简单的代理类,然后就可以进行相应请求了...Get请求 一起来看看效果: 分析返回的 json数据,包含集合,那么我们可以进一步对接口返回值进行数据的封装。...根据返回的json集合,那么我们肯定有个实体类了。
html, ReturnLocationBean.class); } catch (Exception e) { log.error("地理编码[异常],", e); return null...html, ReturnLocationBean.class); } catch (Exception e) { log.error("逆地理编码[异常],", e); return null...; } } 返回信息如下 3,不通源坐标之间的相互转换 之所以会写这个是因为我公众号的经纬度是腾讯提供的。。。。...(post);// 用http连接去执行get请求并且获得http响应 HttpEntity entity = response.getEntity();// 从response中取到响实体...地图、mapabc地图和amap地图所用坐标,国测局(GCJ02)坐标; 4:3中列表地图坐标对应的米制坐标; 5:百度地图采用的经纬度坐标; 6:百度地图采用的米制坐标; 7:mapbar地图坐标
SQL函数 $LISTLENGTH 返回指定列表中元素数量的列表函数。 大纲 $LISTLENGTH(list) 参数 list- 计算结果为有效列表的表达式。...您可以使用 SQL 或 ObjectScript $LIST 函数从现有列表中提取列表。 描述 $LISTLENGTH 返回列表中元素的数量。 此函数返回 SMALLINT 类型的数据。...示例 以下嵌入式 SQL 示例返回 3,因为列表中有 3 个元素: /// d ##class(PHA.TEST.SQLFunction).ListLength() ClassMethod ListLength...3,因为列表中有 3 个元素: SELECT $LISTLENGTH($LISTBUILD('Red','Blue','Green')) 3 以下嵌入式 SQL 示例也返回 3。...因为它不包含列表元素,所以它的 $LISTLENGTH 计数为 0,如下例所示: DHC-APP> WRITE $LISTLENGTH("") 0 $LISTLENGTH 和嵌套列表 以下嵌入式 SQL
SQL函数 $LISTGET 返回列表中的元素或指定默认值的列表函数。...大纲 $LISTGET(list[,position[,default]]) 参数 list - 计算结果为有效列表的表达式。列表是包含一个或多个元素的编码字符串。...示例 以下嵌入式 SQL 示例中的 $LISTGET 函数都返回“Red”,即列表中的第一个元素: /// d ##class(PHA.TEST.SQLFunction).ListGet() ClassMethod...The no-default value is 以下嵌入式 SQL 示例中的 $LISTGET 函数都指定了一个大于三元素列表中最后一个元素的位置。第一个返回空字符串,因为未指定默认值。...is The NULL element is 注意 无效的参数值 如果列表参数中的表达式未计算为有效列表,则会发生 SQLCODE -400 致命错误,因为 $LISTGET 返回变量仍未定义。
时间戳记值将除去尾随空格,以小数秒为单位的尾随零和(如果没有小数秒的话)尾随的小数点。当SQLCODE = 0时,即返回有效行时,将设置INTO子句中指定的输出主机变量。...例如,SELECT * FROM Sample.Person仅对以逗号分隔的15个主机变量列表有效(非隐藏列的确切数目,具体取决于表定义,该数目可能包含也可能不包含系统生成的RowID) (ID)列)。...NULL和未定义的主机变量如果指定未定义的输入主机变量,则嵌入式SQL将其值视为NULL。...在ODBC和JDBC中,使用ODBC或JDBC接口显式指定NULL值。主机变量的有效性嵌入式SQL永远不会修改输入主机变量。...OutVal的值在从嵌入式SQL返回之后不应该被IF命令引用。
但是自从升级了Retrofit2之后,就可以不用手动导入了,因为已经自己引入了。...short.class || type == Short.class) { return ScalarRequestBodyConverter.INSTANCE; } 这里会自动根据返回数据转换成你泛型里写的类型的数据...TimeUnit.SECONDS)//网络请求超时时间单位为秒 .build(); .addInterceptor()可以调用多次 自定义Interceptor实现过滤改变请求返回的数据...getInteger("code") == 500) { /** *这里改变返回的数据...,如果服务器返回的是一个HTML网页, *那么移动端也能拿到一个Json数据,用于保证数据可解析不至于崩溃
https://github.com/square/okhttp 简单使用 引入依赖 引入依赖,使用Retrofit2。...RequestBody;先调查好后台接受的body类型。...= null) { Log.d(TAG, "sslSocketFactory !...public boolean verify(String hostname, SSLSession session) { return true; // 强制返回...osVersion, @Query("submitContent") String content); 示例1 - Retrofit2
; } } } } 3.5 实现CallAdapter 支持方法返回类型 继续回到Http请求的声明中,目前我们方法所支持的返回类型都是OKHttp的...Call对象,如果不是,就在框架内部直接同步调用网络请求得到响应的Json内容后直接转换成JavaBean对象作为方法的返回值,但是这个设想存在这样几个问题 要实现直接返回Http结果则方法调用是同步调用...,如果在主线程做IO请求肯定是不合理的 如果内部IO异常了,或者JSON转换失败了方法返回的是什么呢?...为null吗?...= NetCall.class) { return null; } //要求开发者方法的返回类型必须写成 NetCall 或者NetCall
参数 element - 任何表达式,或逗号分隔的表达式列表 描述 $LISTBUILD 接受一个或多个表达式,并为每个表达式返回一个包含一个元素的列表。...出于同样的原因,$LISTBUILD 返回的列表字符串值不应用于使用分隔符的字符搜索和解析函数,例如 $PIECE 和 $LENGTH的两个参数形式。...例如,以下嵌入式 SQL 包含两个 $LISTBUILD 语句,它们都生成一个三元素列表,其第二个元素具有未定义 (NULL) 值: /// d ##class(PHA.TEST.SQLFunction...$LISTBUILD 函数会返回一个列表,其中包含一个数据值未定义的元素。...以下是创建“空”列表的有效 $LISTBUILD 语句: /// d ##class(PHA.TEST.SQLFunction).Lb4() ClassMethod Lb4() { &sql(
当服务器恢复正常后,负载均衡器会再次将其加入到服务列表中。 通过上述步骤,负载均衡器可以有效地将用户的请求分发到多个服务器,从而实现负载的均衡,提升系统的性能和可用性。...,返回 null if (currentWeight == 0) { return null;...public synchronized String getServer() { // 初始化最短响应时间为正无穷大,最短响应时间的服务器为 null int...return minResponseServer; } } 这个伪代码中,getServer 方法每次被调用时,都会遍历服务器列表,找出响应时间最短的服务器,并返回。...这对于处理时间各异的请求非常有效,因为处理时间较长的请求会使得该服务器的响应时间增加,从而减少该服务器被分配新的请求的机会。
SQL函数 $LISTSAME 比较两个列表并返回布尔值的列表函数。 大纲 $LISTSAME(list1,list2) 参数 list1 - 计算结果为有效列表的表达式。...list2 - 计算结果为有效列表的表达式。 描述 $LISTSAME 比较两个列表的内容,如果列表相同则返回 1。如果列表不相同,则 $LISTSAME 返回 0。...因此,$LISTSAME 在遇到第一个不匹配的列表元素对时返回值 0;它不检查后续项目以确定它们是否是有效的列表元素。 此函数返回 SMALLINT 类型的数据。...$LISTBUILD(NULL) 或 $LISTBUILD():单元素列表,该元素没有值。 如果列表参数为 NULL,则 $LISTSAME 返回 NULL。...如果列表参数不是有效列表(并且不是 NULL) SQL 会生成 SQLCODE -400 致命错误。
Retrofit和Java领域的ORM概念类似, ORM把结构化数据转换为Java对象,而Retrofit 把REST API返回的数据转化为Java对象方便操作。同时还封装了网络代码的调用。...(GsonConverterFactory.create())就可以了,但是得保证我们定义的API接口的时候Call里面的bean要和服务器返回的接口一一对应,否则这个字段就会为null,甚至网络请求失败报错...我们都知道服务器返回的结果一般都是下面这种格式的: image.png 一定是有code状态码和返回信息的,我之前的用法和教程一样,说将服务器返回的结果复制下来直接在AS上面利用GsonFormat...转化就OK了,确实很方便,但是这样下来每个bean里面都会有重复的erroe_code和message或者服务器返回其他,所以我是这样做的: public class BaseCallModel...最后分享几个不错的Retrofit博客吧: 你真的会用Retrofit2吗?Retrofit2完全教程 深入浅出 Retrofit,这么牛逼的框架你们还不来看看?
ServerList维护列表可能在运行的过程中动态改变 3.2 ServerStats 作为对应Server 的运行情况统计,一般是服务调用过程中的Server平均响应时间,累计请求失败计数,熔断时间控制等...LoadBalancer 选择服务实例的流程 通过ServerList获取当前可用的服务实例列表; 通过ServerListFilter将步骤1 得到的服务列表进行一次过滤,返回满足过滤器条件的服务实例列表...; 应用Rule规则,结合服务实例的统计信息,返回满足规则的某一个服务实例; 通过上述的流程可以看到,实际上,在服务实例列表选择的过程中,有两次过滤的机会:第一次是首先通过ServerListFilter...,切且有结果返回时 3.4.3.3 定义IRule,从服务实例列表中,选择最合适的Server实例 ?...由上图可见,IRule会从服务列表中,根据自身定义的规则,返回最合适的Server实例,其接口定义如下: public interface IRule{ /* * choose one
这是个很高频的问题【敲黑板!】。很多人在一开始没理解函数的返回值(return)和输出(print)的区别。 函数里 return 后面的东西叫做返回值,它是函数执行的结果,是函数里特有的。...它不影响函数本身的执行过程,是一个独立的行为。(print 本身也是一种函数) 套用刚才的例子,这个小黄鸭机器上有个喇叭(控制台),每次生成出一只小黄鸭,就会响一声(print 输出)。...而小黄鸭成品才是返回值。喇叭可以响很多次,发出各种不同声音(print 各种信息),但每次生成出的小黄鸭只有一个。 函数的返回值可以赋值给变量,之后再被使用。如果没有赋值,那返回值就没有用了。...sorted(lst) 方法是把参数列表里的元素进行排序后,生成一个新列表作为返回值。它不会影响原有的列表。 lst.sort() 则是对列表本身进行排序,改变了原有列表数据。但它没有返回值。...为什么我在函数里修改了变量,但没有效果? ? 函数里修改了 x,但是最终结果并没有变化。类似的还有程序直接报错变量未定义、不想改变的值被修改了等情况。
领取专属 10元无门槛券
手把手带您无忧上云