API:API说明文档:www.juhe.cn/docs/api/id…
接口地址:v.juhe.cn/wepiao/quer…
API返回的json:
{"reason":"请求成功","result":{"h5url":"http:\/\/v.juhe.cn\/wepiao\/go?key=xxxxxxxxx","h5weixin":"http:\/\/v.juhe.cn\/wepiao\/go?key=xxxxxxxxxx&s=weixin"},"error_code":0}{
"reason": "请求成功",
"result": {
"h5url": "http://v.juhe.cn/wepiao/go?key=xxxxxxxxxxxxx",
"h5weixin": "http://v.juhe.cn/wepiao/go?key=xxxxxxxxxx&s=weixin"
},
"error_code": 0
}实体类
- H5TicketUrl
data class H5TicketUrl(val h5url: String, val h5weixin: String) - H5TicketResult
data class H5TicketResult(val error_code: Int, val reason: String, val result: H5TicketUrl) - ProjectBaseResult
data class ProjectBaseResult<out M>(val reason: String, val error_code: Int, val result: M)请求
val url = freeApi.reqUrl + "?key=" + APP_KEY // 请求url val resultJson = URL(url).readText() // 发送请求,resultJson为返回的json解析Json-method 1
val result = Gson().fromJson<H5TicketResult>(resultJson, H5TicketResult::class.java)解析Json-method 2
val type = object : TypeToken<ProjectBaseResult<H5TicketUrl>>() {}.type val result = Gson().fromJson<ProjectBaseResult<H5TicketUrl>>(resultJson, type)解析Json-method 3
val result = object : BaseResult<H5TicketUrl>() {}.fromJson(resultJson)
abstract class BaseResult<out M> : ParameterizedType {
override fun getRawType(): Type {
return ProjectBaseResult::class.java
}
override fun getOwnerType(): Type? {
return null
}
override fun getActualTypeArguments(): Array<Type> {
val superclass = this.javaClass.genericSuperclass
if (superclass is Class<*>) {
throw RuntimeException("Missing type parameter.")
}
return (superclass as ParameterizedType).actualTypeArguments
}
fun fromJson(json: String): ProjectBaseResult<M> {
return Gson().fromJson<ProjectBaseResult<M>>(json, this)
}
}