# XHHttp **Repository Path**: maybesix/XHHttp ## Basic Information - **Project Name**: XHHttp - **Description**: 一个简单好用的http请求框架 - **Primary Language**: Kotlin - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2020-04-09 - **Last Updated**: 2021-07-06 ## Categories & Tags **Categories**: web-dev-toolkits, android-modules **Tags**: None ## README # XHHttp [![](https://jitpack.io/v/maybesix/XHHttp.svg)](https://jitpack.io/#maybesix/XHHttp) #### 介绍 一个简单好用http请求框架 #### 软件架构 采用接口+注解的方式定义请求 原理:反射+动态代理 http实现:OkHttp3 #### 使用说明 ``` 添加 allprojects { repositories { ... maven { url 'https://jitpack.io' } } } ``` ``` dependencies { //需要添加反射库 implementation 'org.jetbrains.kotlin:kotlin-reflect:1.3.71' implementation 'com.github.maybesix:XHHttp:Tag' } ``` 1.定义一个接口 ```kotlin interface HttpRequest { companion object { fun instance(config: XHHttpConfig? = null): HttpRequest { return XHHttp.getInstance(HttpRequest::class.java, config) } } @GET("wxarticle/chapters/json") fun getChapters(_callback: ObserverCallBack?) @POST("article/query/0/json") fun search(_callback: ObserverCallBack?, k: String = "kotlin") } ``` 2.发起请求 ```kotlin HttpRequest.instance().getChapters( callbackOf { success { } },"0") ``` 3.注解 |注解|标注位置|描述| |---|---|---| |@GET|接口方法|表明该方法是get请求| |@POST|接口方法|表明该方法是post请求| 复杂参数的注解有 |注解|标注位置|描述| |---|---|---| |@Path | 接口的参数 |用于动态替换接口方法上注解的url中的字段| |@Param |接口的参数 |用于标注改参数为类| |@ParamRename |参数的类内部|用于标注参数类的某个属性的在构建url的时候的真实字段| |@ParamIgnore |参数的类内部|用于忽略某个字段| 文档详情 >https://www.jianshu.com/p/024994e8dcf2 >https://juejin.im/post/5eae55afe51d454dd940636a 如果对您有帮助,请作者吃个辣条吧!O(∩_∩)O~~ ![输入图片说明](https://images.gitee.com/uploads/images/2020/0720/154602_a2d6325a_1771291.png "IMG_20200720_154106.png") ![支付宝](https://images.gitee.com/uploads/images/2020/0720/154452_7821d0ae_1771291.png "IMG_20200720_154121.png")