在使用第三方插件 Guzzle 请求微信素材管理接口: 接口说明 http请求方式: POST https://api.weixin.qq.com/cgi-bin/material/batchget_material...access_token=ACCESS_TOKEN #参数 { "type":TYPE, "offset":OFFSET, "count":COUNT } 错误请求代码 $client...json 格式 尝试修改代码如下: $client = new Client(); $response = $client->post("https://api.weixin.qq.com/cgi-bin...access_token=$token", [ 'form_params' =>json_encode([ "type"=>"news",...access_token=$token", [ 'json' => [ "type"=>"news", "offset"=>0
当然你也可以自己借助 json-server 或 最新开源的Parse 搭建一个REST API,不过都需要安装Node.js,有兴趣的可以去试试。 接口列表: ?...第一类:HTTP请求方法 ?...@POST("blog") Call> createBlog(@Body Blog blog); 被@Body注解的的Blog将会被Gson转换成RequestBody发送到服务器...从上面不能难看出以下规则: 如果你在注解中提供的url是完整的url,则url将作为请求的url。...,所以我还是决定发出来帮助一下那此对Retrofit2无从下手同鞋。
的过程中受到了一些阻力,现 Retrofit2 学会使用了,特此写此文验证所学知识。...先看看如何使用,如何进行一个简单的Get/Post请求 Retrofit2 入门 首先在build.gradle中添加如下代码,添加Retrofit2库 compile 'com.squareup.retrofit2...start=1&count=5 Post带Body请求 使用@Body来声明即可,如下: @POST("/aaa") Call send( @Body UserInfo body);...//使用 Call call=url.send(); 这里的UserInfo就是要发送的实体,Retrofit2 会自动转成Gson 学到这里,一般的网络请求都可以了进行,可以应付一阵子了...还有一些要求较高的请求,请看下节。 Retrofit2 大成 如果看到这里,相信对Retrofit2的基本请求会用了,那么这节就说一说其他的网络请求。
Okhttp本想做面向整个Java世界的网络框架,但从OKhttp3开始,似乎开始专注于Android领域,较新的版本都是用Kotlin编写和构建。...1.1.3 Retrofit2 Retrofit2同样出自Square公司,Retrofit2是对Okhttp的封装。...Okhttp3发出请求,访问百度首页。...在真实场景中,我们的抓包返回结果往往是JSON数据,因此替换访问URL为"http://www.kuaidi100.com/query?...(网络请求可分为同步和异步方式,Android中主要使用异步方式,因此我们这里直接不讲同步请求,除此之外,GET和POST是两种常用的请求,这里先演示GET方式)。
于是我在Retrofit中加入了Rxjava,这也是当下蛮流行的一个请求框架。然后又利用了Kotlin的一些新特性,使网络请求变得特别简单,代码量特别少。...把网络请求都交给给了Okhttp,我们只需要通过简单的配置就能使用retrofit来进行网络请求了,其主要作者是Android大神JakeWharton。...HttpLoggingInterceptor.Logger { Log.e("retrofit url",it) }) logging.level = HttpLoggingInterceptor.Level.BODY...虽然这样子可以进行网络请求,可如果每次请求都要去写线程调度又觉得太麻烦了,都是一样的代码。这时候我们就用到了Kotlin的一个特性,扩展函数。...Kotlin允许把一个方法当做一个参数进行使用,使用时通过Lambda的方式展示,一样在我们刚刚写runRx那个文件: fun <T runRxLambda(observable: Observable
,返回的数据格式有 Json 对象和 Json 数组,需要的参数格式可以由使用者来自由定义 本篇文章不会对 Retrofit2 的用法进行过多介绍,重点在于介绍服务端接口的搭建以及 Retrofit2.../getString/{id}") Call getWithPath(@Path("id") int id); //将请求值作为链接一部分的 Get 请求,并使用...如果在请求方法中带上注解 @Query 以及对应的请求参数,则请求参数会作为访问链接的后缀 //Get请求时会带上请求参数,参数将作为链接的后缀,生成的链接是:/Get/getString?...getWithQueryAndHeaders() 方法则是用于携带请求参数以及固定请求头的 Get 请求 //Get请求时带上参数和请求头信息,参数将作为链接的后缀,生成的链接是:/Get/getString.../public/upload/Anoj-VQ-cd_vkw9_O5ErSSG6.jpg'; //设置文件下载时显示的文件名,如不设置则使用原始的文件名 var fileName = 'leavesC.jpg
演示一个使用OkHttp的项目Demo 为了更好的演示框架的实现过程,这里我先创建了一个简单的Demo项目 这个Demo项目中主要包含3个部分 Json数据对应JavaEntity类 项目中包装网络请求回调的...一个Class对象表示响应的Json数据对应的Model,以便在内部使用Gson来解析,以及网络请求的异步回调 NetCallback 我们不直接使用OkHttp提供的Callback 而是在内部简单的做了封装转换成项目自己的...,作为POST请求的JSON数据 首先我们添加一个POST注解 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public...3.4 实现ConverterFactory 解耦Json转换 在上面的例子中,我们直接在框架Retrofit中使用了Gson库做Json转换,但作为一个框架来说 我们不希望直接强耦合一个第三方Json...Json内容后直接转换成JavaBean对象作为方法的返回值,但是这个设想存在这样几个问题 要实现直接返回Http结果则方法调用是同步调用,如果在主线程做IO请求肯定是不合理的 如果内部IO异常了,或者
今年的 Google I/O 大会上,Google 是这样评价 Kotlin:在过去一年里,有35%的专业 Android 开发者在使用 Kotlin,其中95%的开发者都对 Kotlin 非常满意。...而值得一提的是 Twobbble 完全使用 Kotlin 开发,并使用了 RxJava,Retrofit2,EventBus,Fresco,等多个常用第三方项目,会充分的证明了 Kotlin 在实际生产中的可靠与...项目简介:一个使用 Kotlin 语言开发的天气网站,其他使用的技术包括 SpringBoot、Webmagic 等。...的一个面向下一代的极其轻量级的微服务框架,您可以处理 Url 的解析,数据的封装,Json 的输出等等,从根本上减少开发时间、提升开发体验。...UI 布局,网络请求,数据解析,等各种 java 语言使用 kotlin 语言的写法,对 kotlin 语言开发 android 进行了一个初步总结....
显示样式如下,复制内容的时候使用鼠标中键进行选中 打印内容:code,请求方式,url,请求头,请求体,返回json class LoggerInterceptor : Interceptor { override...request() val response = chain.proceed(orgRequest) val body = orgRequest.body() val sb = StringBuilder...() if (orgRequest.method() == "POST" && body is FormBody) { val body1 = body for (i in 0 until body1...= 0L) { //打印返回json //json日志使用鼠标中键进行选中 Logger.t(AppConfigs.LOGGER_NET_TAG).json(buffer.clone().readString...: Boolean { return BuildConfig.DEBUG } }) 除了需要依赖Retrofit2相关依赖外还需要依赖 implementation 'com.orhanobut
《学习|Android检测并自动下载安装包(Kotlin)》以前这篇用的AsyncTask的方式下载过,现在AsyncTask慢慢废弃了,所以本篇也是初学Flow后的第一次体验使用。...# 整体介绍 1 网络通讯用的retrofit2 2 类的JSON用的GSON 3 下载时的状态显示更新用的kotlin Flow,这也是我第一次用Flow排坑也用了些时间,不过使用起来确实感觉简单好多...= callupgrade.execute().body() body?....数据 val json = rsp.body()!!....中使用协程,所以两个方法的前面要加上suspend 。
2、@Multipart:作用于方法 使用该注解,表示请求体是多部分的,每个部分作为一个参数,且用Part注解声明。...:作用于方法参数 使用@Body 注解定义的参数不能为null 当你发送一个post或put请求,但是又不想作为请求参数或表单的方式发送请求时,使用该注解定义的参数可以直接传入一个实体类,retrofit...(二)、application/json application/json 这个Content-Type作为响应头大家肯定不陌生。...(三)、text/xml 它是一种使用HTTP作为传输协议,XML作为编码方式的远程调用规范。...(一)、如何使用Retrofit和okHttp封装multipart/form-data 1、在retrofit2中: 使用** @retrofit2.http.Multipart : 标记一个请求是
但是自从升级了Retrofit2之后,就可以不用手动导入了,因为已经自己引入了。...com.google.code.gson:gson:2.7' compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' } 可以看到,我上面引入了Retrofit2...这两个,是在从请求Json数据到Bean需要使用到的。...我们经常会因为后台传来的数据的不稳定性,我们需要自己手动去解析字符串,那么就引入了这个 compile 'com.squareup.retrofit2:converter-scalars:2.0.0' 使用方式好简单....build(); .addInterceptor()可以调用多次 自定义Interceptor实现过滤改变请求返回的数据(可使用与保证APP的稳定性) import com.alibaba.fastjson.JSON
在Retrofit1中使用的是RestAdapter,而Retrofit2中使用的Retrofit实例,之前的setEndpoint变为了baseUrl。...Retrofit2通过OKHttp的拦截器拦截http请求进行监控,重写或重试等,包括日志打印等。...参考:官方CHANGELOG.md 更新到Retrofit2的一些技巧 1.9使用配置 //gson converter final static Gson gson = new GsonBuilder...POST请求体,将实例对象根据转换方式转换为对应的json字符串参数, 这个转化方式是GsonConverterFactory定义的。...无网读缓存,有网根据过期时间重新请求 一般情况下我们需要达到的缓存效果是这样的: 没有网或者网络较差的时候要使用缓存(统一设置) 有网络的时候,要保证不同的需求,实时性数据不用缓存,一般请求需要缓存(单个请求的
前言 RxJava2与Retrofit2是老搭档了,之前写了一篇《RxJava和Retrofit2的统一处理单个请求》,是用的Rxjava1.0,本次使用Rxjava2.0与Retrofit2进行封装,..." + throwable.getMessage()); } }); } /** * 统一处理单个请求 * 返回数据没有body */ public static Disposable...:没有body" + throwable.getMessage()); } }); } } 回调就是普通的泛型的回调 package com.lin.netrequestdemo.data...; public interface RxNetCallBack<T { /** * 数据请求成功 * * @param data 请求到的数据 */ void onSuccess(T...com.google.gson.JsonParseException; import org.apache.http.conn.ConnectTimeoutException; import org.json.JSONException
绪论 前面我们讨论了使用Retrofit时怎样去设置OKHttp,包括持久化管理Cookie、设置网络超时、设置打印拦截器、设置缓存、Header等等,详细可查看 Retrofit–使用Retrofit...自定义响应体CallModel 很简单的实现了一个网络请求,当然我在刚开始的时候一直也都是这么使用的,因为Retrofit自己封装了JSON解析的过程,我们只需在建造Retrofit的时候加入addConverterFactory...json转化异常。...最后分享几个不错的Retrofit博客吧: 你真的会用Retrofit2吗?Retrofit2完全教程 深入浅出 Retrofit,这么牛逼的框架你们还不来看看?...Android Retrofit 2.0 使用-补充篇
前言 RxJava和Retrofit2用了一段时间了,写个小例子,分享出来,有什么不对的地方还请大神在评论区指正。...我翻译的可能不准确,他的大概意思是说:Retrofit 是一个 java 接口类,以注解的方式用于 HTTP 网络请求。那下面我们一起来看看是怎么使用的?...发现问题 最近在帮兄弟公司做一个资讯类的项目,使用了RxJava和Retrofit2这对黄金组合,在编写代码的过程中发现有很多很多的网络请求都需要做.subscribeOn(Schedulers.io...msg body */ public static Subscription requestWithoutBody(Observable<BaseResponse observable, final...com.google.gson.JsonParseException; import org.apache.http.conn.ConnectTimeoutException; import org.json.JSONException
很多著名的框架例如Picasso、Retrofit也使用OkHttp作为底层框架。...提示: 更多关于OkHttp 的使用可参考: http://square.github.io/okhttp/ 创建 Kotlin Gradle 项目 我们首先使用 IDEA 创建 Kotlin Gradle...url method 请求方法,例如 Get、Post 等,不区分大小写 body 请求头,为了简单起见我们直接使用 OkHttp的RequestBody类型 timeout 超时时间ms,我们设置了默认值是...使用 RxKotlin 完成请求响应的异步处理 我们首先新建一个数据发射源:一个可观察对象(Observable),作为发射数据用 val sender = Observable.create<...= JSONObject() json.put("name", "Kotlin DSL Http") json.put("owner", "Kotlin")
前言 在上一篇Android网络编程(九)Retrofit2前篇[基本使用]中我们了解了Retrofit的最基本的GET方式访问网络的写法以及请求参数的简单介绍。...首先用到@FormUrlEncoded注解来标明这是一个表单请求,然后在getIpMsg方法中使用@Field注解来标示所对应的String类型数据的键,从而组成一组键值对进行传递。...接下来请求网络的代码如下所示。 ? 传输数据类型Json字符串:@Body 我们也可以用POST方式将Json字符串作为请求体发送到服务器,请求网络接口代码为: ?...用@Body这个注解标识参数对象即可,retrofit会将Ip对象转换为字符串。 ? 请求网络的代码基本上都是一致的: ? 运行程序用Fiddler抓包,如下图所示。 ?...可以看到请求数据是一个Json字符串,因为淘宝ip库并不支持此类型所以不会返回我们需要的地理信息数据。 单个文件上传:@Part ?
Kotlin, 需要替换annotationProcessor 为kapt. ---- TemplateAndServer 介绍完AndServer,下面就开始介绍我编写的TemplateAndServer...---- 功能介绍 本模版项目主要使用AndServer提供的服务搭建,内置常用的基础模块,功能如下. 统一的请求日志记录。 全局异常捕获处理,返回统一API结果。 增加全局权限验证拦截器。...返回Json格式 { "code":0, //响应码,0为成功,否则失败 "msg":"", //请求失败的原因说明 "data":{} //返回的数据对象 } 集成说明...AndServer 一个HTTP和反向代理服务器 XHttp2 一个功能强悍的网络请求库,使用RxJava2 + Retrofit2 + OKHttp组合进行封装。...日志查看 在logcat上搜索关键词"AndServer"即可查看请求日志。 - END -
前言 Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,而OkHttp现在已经得到Google官方认可,不了解OKHttp的请查看本系列的前作...请求接口(GET): /service/getIpInfo.PHP?ip=[ip地址字串] 2. 响应信息: (json格式的)国家 、省(自治区或直辖市)、市(县)、运营商 3....2.用Retrofit异步访问网络 编写实体类 我们可以用JSON字符串转换成Java实体类(POJO)这个网站将Json转为实体类,经过修改的实体类如下: IpModel.Java: ?...如果想同步请求网络请使用 call.execute(),如果想中断网络请求则可以使用 call.cancel()。 完整的代码如下: ?...@Body @Body与@POST注解一起使用,提供查询主体内容,其中ApiInfo是一个bean类。 ? @Headers ?
领取专属 10元无门槛券
手把手带您无忧上云