【发布时间】:2019-02-14 06:48:23
【问题描述】:
我想通过改造返回数据,这是我的 api 中的 json
{
"peyks": [{
"name": "\u0627\u062a\u0646\u0627\u0644",
"vasile": "\u067e\u06cc\u06a9 \u0645\u0648\u062a\u0648\u0631\u06cc",
"address": "\u0646\u062a\u0644\u0628\u0627\u0644\u062f\u062a\u0644\u0644\u062a",
"date": "1397-11-25 09:50:54",
"tel": "00000000000"
}, {
"name": "\u0627\u062a\u0646",
"vasile": "\u067e\u06cc\u06a9 \u0645\u0648\u062a\u0648\u0631\u06cc",
"address": "\u062a\u0627\u0627\u0644\u0644\u0628\u0633",
"date": "1397-11-24 18:20:16",
"tel": "00000000000"
}]
}
我正在使用 json 编码,这是我的连接类:
object ApiConnection {
val BaseUrl ="http://site.ir/"
val client: Retrofit
get() {
val gson = GsonBuilder()
.setLenient()
.create()
///for Logging
val interceptor = HttpLoggingInterceptor()
interceptor.level = HttpLoggingInterceptor.Level.BODY
val client = OkHttpClient.Builder().addInterceptor(interceptor).build()
var retrofit = Retrofit.Builder()
.baseUrl(BaseUrl)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create(gson))
.client(client)
.build()
return retrofit
}
}
这些是模型类:
data class Peyk_item(
val address: String,
val date: String,
val name: String,
val tel: String,
val vasile: String
)
data class Peyks(
val peyks: List<Peyk_item>
)
这是我的接口类:
interface getPeykHistoryApi {
@FormUrlEncoded
@POST("getPeykList.php")
fun getPeykHistory(@Field("uid")uid:String): Single<Peyks>
}
这是活动类代码
val get:getPeykHistoryApi=ApiConnection.client.create(getPeykHistoryApi::class.java)
get.getPeykHistory(Func.getUid(this))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ result ->
}, { error ->
MyToast.makeText(this@PeykHistory, "2 error " +error.localizedMessage.toString());
})
清单没问题,它有互联网权限
当我运行该应用程序时,它在模拟器中运行良好并返回数据,它在我的带有 android 6 的手机上运行良好,但它不适用于两部带有 android oreo (8) 的手机
它不会进入错误部分,它会进入结果但响应为 null 。
怎么了?
【问题讨论】:
-
您在日志中找到什么了吗?请放在这里。
-
看看这个问题,这可能是你的问题:stackoverflow.com/q/45940861/10271334
-
@PratikButani no , log cat 中没有错误
-
@JeelVankhede 我试过了,但是没用