android - Android okhttp - POST 请求:将响应转换为正确的 JSONArray 时出现问题
问题描述
我通常loopj
AsyncHttpClient
用于 API,但不幸的是,它不适用于使用 https 的旧 Android API,因此我必须改用 okhttp。
这是代码:
val formBody = FormBody.Builder()
.add("lastid", lastID.toString())
.add("gal", gal)
.build()
val request = Request.Builder()
.url("$domain/bla.php")
.post(formBody)
.build()
client.newCall(request).execute().use { response ->
if (!response.isSuccessful){
Log.d(tagg,"Unexpected code $response")
}
val myResponse = JSONArray(response.body!!.string())
Log.d(tagg, myResponse.toString())
setMemes(myResponse, gal)
}
有时它有效,JSONArray 在内部被解析,setMemes
但有时它没有!不过,日志总是显示 JSONArray。所以我猜测响应转换为 JSONArray 的方式有问题。这样做从来都不是问题,AsyncHttpClient
因为您不必执行任何额外的步骤来检索 JSONArray,例如转换
有没有一种正确的方法让带有 okhttp 的 JSONArray 每次都有效,而不是随机的?
编辑1:
这是使用 loopj 后的 JSONArray(不完全适合 logcat):
2020-06-21 16:07:14.605 22393-22533/? D/pikabo: [{"id":"140","title":"That must hurt after a while","pic":"atYsvcQx_gif_38.mp4","size":"320|240","userid":"17","nickname":"Lolhunt42","commentcount":"5","time":"1592414298","secondsago":334138,"checked":"1","liked":1,"disliked":0,"voteup":"4","votedown":"0"},{"id":"139","title":"","pic":"hWM9COQ180.jpg","size":"460|355","userid":"17","nickname":"Lolhunt42","commentcount":"0","time":"1592409945","secondsago":338491,"checked":"1","liked":1,"disliked":0,"voteup":"3","votedown":"0"},{"id":"138","title":"","pic":"VHyNissF49.jpg","size":"800|819","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592348577","secondsago":399859,"checked":"1","liked":0,"disliked":0,"voteup":"1","votedown":"0"},{"id":"137","title":"Just like my dog lmao","pic":"RwuTkylV52.jpg","size":"852|986","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592344259","secondsago":404177,"checked":"1","liked":1,"disliked":0,"voteup":"2","votedown":"0"},{"id":"134","title":"","pic":"GvXyE6Gw28.jpg","size":"800|874","userid":"14","nickname":"Memetron1337","commentcount":"1","time":"1592271317","secondsago":477119,"checked":"1","liked":0,"disliked":0,"voteup":"1","votedown":"0"},{"id":"133","title":"","pic":"jNq4uvqV30.jpg","size":"700|546","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592271315","secondsago":477121,"checked":"1","liked":0,"disliked":0,"voteup":"2","votedown":"0"},{"id":"132","title":"","pic":"HCtosYx489.jpg","size":"716|770","userid":"14","nickname":"Memetron1337","commentcount":"1","time":"1592271312","secondsago":477124,"checked":"1","liked":1,"disliked":0,"voteup":"8","votedown":"1"},{"id":"131","title":"","pic":"NrNPzY7B98.jpg","size":"362|489","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592269295","secondsago":479141,"checked":"1","liked":1,"disliked":0,"voteup":"3","votedown":"0"},{"id":"130","title":"","pic":"3MMU123B32.jpg","size":"640|669","userid":"14","nickname":"Memetron1337","commentcount":"1","time":"1592269292","secondsago":479144,"checked":"1","liked":1,"disliked":0,"voteup":"1","votedown":"0"},{"id":"129","title":"","pic":"HaHOC6W497.jpg","size":"720|922","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592268759","secondsago":479677,"checked":"1","liked":0,"disliked":0,"voteup":"0","votedown":"0"},{"id":"128","title":"","pic":"kjVaL1zC85.jpg","size":"720|703","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592268756","secondsago":479680,"checked":"1","liked":1,"disliked":0,"voteup":"2","votedown":"0"},{"id":"127","title":"","pic":"3g3YXzqM69.jpg","size":"700|607","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592268754","secondsago":479682,"checked":"1","liked":0,"disliked":0,"voteup":"1","votedown":"0"},{"id":"126","title":"","pic":"cLGHi5YI19.jpg","size":"480|693","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592268752","secondsago":479684,"checked":"1","liked":0,"disliked":0,"voteup":"1","votedown":"0"},{"id":"125","title":"","pic":"UNV5bIVc26.jpg","size":"711|738","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592268747","secondsago":479689,"checked":"1","liked":1,"disliked":0,"voteup":"2","votedown":"0"},{"id":"124","title":"","pic":"x6zdb4SR02.jpg","size":"700|711","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592265141","secondsago":483295,"checked":"1","liked":1,"disliked":0,"voteup":"2","votedown":"0"},{"id":"123","title":"","pic":"8UvBlGly68.jpg","size":"500|700","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592265133","secondsago":483303,"checked":"1","liked":0,"disliked":0,"voteup":"1","votedown":"0"},{"id":"118","title":"Better than masks","pic":"I1Inh92348.jpg","size":"800|900","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1591727637","secondsago":1020799,"checked":"1","liked":1,"disliked":0,"voteup":"3","votedown":"0"},{"id":"107","title":"","pic":"jjMlP6Sf29.jpg","size":"719|845","userid":"14","nickname":"Memetron1337","commentcount
这使用okhttp:
2020-06-21 16:07:24.576 22393-22536/? D/pikabo: [{"id":"140","title":"That must hurt after a while","pic":"atYsvcQx_gif_38.mp4","size":"320|240","userid":"17","nickname":"Lolhunt42","commentcount":"5","time":"1592414298","secondsago":334148,"checked":"1","liked":1,"disliked":0,"voteup":"4","votedown":"0"},{"id":"139","title":"","pic":"hWM9COQ180.jpg","size":"460|355","userid":"17","nickname":"Lolhunt42","commentcount":"0","time":"1592409945","secondsago":338501,"checked":"1","liked":1,"disliked":0,"voteup":"3","votedown":"0"},{"id":"138","title":"","pic":"VHyNissF49.jpg","size":"800|819","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592348577","secondsago":399869,"checked":"1","liked":0,"disliked":0,"voteup":"1","votedown":"0"},{"id":"137","title":"Just like my dog lmao","pic":"RwuTkylV52.jpg","size":"852|986","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592344259","secondsago":404187,"checked":"1","liked":1,"disliked":0,"voteup":"2","votedown":"0"},{"id":"134","title":"","pic":"GvXyE6Gw28.jpg","size":"800|874","userid":"14","nickname":"Memetron1337","commentcount":"1","time":"1592271317","secondsago":477129,"checked":"1","liked":0,"disliked":0,"voteup":"1","votedown":"0"},{"id":"133","title":"","pic":"jNq4uvqV30.jpg","size":"700|546","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592271315","secondsago":477131,"checked":"1","liked":0,"disliked":0,"voteup":"2","votedown":"0"},{"id":"132","title":"","pic":"HCtosYx489.jpg","size":"716|770","userid":"14","nickname":"Memetron1337","commentcount":"1","time":"1592271312","secondsago":477134,"checked":"1","liked":1,"disliked":0,"voteup":"8","votedown":"1"},{"id":"131","title":"","pic":"NrNPzY7B98.jpg","size":"362|489","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592269295","secondsago":479151,"checked":"1","liked":1,"disliked":0,"voteup":"3","votedown":"0"},{"id":"130","title":"","pic":"3MMU123B32.jpg","size":"640|669","userid":"14","nickname":"Memetron1337","commentcount":"1","time":"1592269292","secondsago":479154,"checked":"1","liked":1,"disliked":0,"voteup":"1","votedown":"0"},{"id":"129","title":"","pic":"HaHOC6W497.jpg","size":"720|922","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592268759","secondsago":479687,"checked":"1","liked":0,"disliked":0,"voteup":"0","votedown":"0"},{"id":"128","title":"","pic":"kjVaL1zC85.jpg","size":"720|703","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592268756","secondsago":479690,"checked":"1","liked":1,"disliked":0,"voteup":"2","votedown":"0"},{"id":"127","title":"","pic":"3g3YXzqM69.jpg","size":"700|607","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592268754","secondsago":479692,"checked":"1","liked":0,"disliked":0,"voteup":"1","votedown":"0"},{"id":"126","title":"","pic":"cLGHi5YI19.jpg","size":"480|693","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592268752","secondsago":479694,"checked":"1","liked":0,"disliked":0,"voteup":"1","votedown":"0"},{"id":"125","title":"","pic":"UNV5bIVc26.jpg","size":"711|738","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592268747","secondsago":479699,"checked":"1","liked":1,"disliked":0,"voteup":"2","votedown":"0"},{"id":"124","title":"","pic":"x6zdb4SR02.jpg","size":"700|711","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592265141","secondsago":483305,"checked":"1","liked":1,"disliked":0,"voteup":"2","votedown":"0"},{"id":"123","title":"","pic":"8UvBlGly68.jpg","size":"500|700","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1592265133","secondsago":483313,"checked":"1","liked":0,"disliked":0,"voteup":"1","votedown":"0"},{"id":"118","title":"Better than masks","pic":"I1Inh92348.jpg","size":"800|900","userid":"14","nickname":"Memetron1337","commentcount":"0","time":"1591727637","secondsago":1020809,"checked":"1","liked":1,"disliked":0,"voteup":"3","votedown":"0"},{"id":"107","title":"","pic":"jjMlP6Sf29.jpg","size":"719|845","userid":"14","nickname":"Memetron1337","commentcount
它看起来完全一样
解决方案
推荐阅读
- c# - C# Webcontrol 类继承/修改
- scala - Scala高阶函数混淆
- c# - 如何创建动态 Datagrid 列?
- tfs - VSTS 存档文件任务找不到嵌套项目的生成输出
- r - R:除了一个单元格之外有唯一的行,如何获得保持差异的唯一行
- android - 在android中的viewmodel中扭曲MVP演示者?
- postgresql - 更改 solr 存储日期和时间的方式
- c# - 在 asyc 方法中抛出新异常
- google-chrome-extension - Chrome 扩展开发试图使字体加粗
- c++ - 警告 C26454:算术溢出:“-”操作在编译时产生负的无符号结果 (io.5)