美文网首页
Retorfit2采坑记

Retorfit2采坑记

作者: 九风特 | 来源:发表于2020-09-22 16:52 被阅读0次

Retrofit2本身并不是一个很复杂的第三方库(至少从使用上是如此的)。那么像我一样知道点nodejs,又想学学Retrofit2的人来说,为了各种尝试,很可能自己搭建个restapi的服务器,然后在AS上实验Retrofit2。下面是我的采坑记录

无法访问localhost或者127.0.0.1
这是因为我们的安卓虚拟机给占用了,要用映射访问 把localhost改成10.0.2.2即可, 如:.baseUrl("http://10.0.2.2:3412/")

post的json body总是为空
这个纯属自己对notejs只是了解一丢丢,对http又不愿意详细了解导致的。我想传一个json格式的body给服务器解析,但服务器实际想要的不是json格式,而是类似(a1=1&a2=2)这样的,对于我的情况,修改测试服务器一行代码即可:

app.use(bodyParser.urlencoded({ extended: true }));

改成

app.use(bodyParser.json({ extended: true }));

如果用非json格式的body就要自己拼写,Retrofit2似乎没有提供这种参数的自动转换,不过也很好转换,比如我们的bean类是

data class Quote(val author:String, val text:String )

加一个导出函数就行了

data class Quote(val author:String, val text:String )
{
    fun getRequestBody():RequestBody
    {
        return RequestBody.create(
            MediaType.parse("application/x-www-form-urlencoded; charset=utf-8"),
            "author=$author&text=$text"
        )
    }
}
    @POST("quote")
    fun addQuote(@Body body:RequestBody):Call<ResponseBody>
  
    fun addQuote(quote:Quote){
            httpCaller.addQuote(quote.getRequestBody()).enqueue(object : Callback<ResponseBody?> {
                override fun onResponse(
                    call: Call<ResponseBody?>,
                    response: Response<ResponseBody?>
                ) {
                    Log.d("zrm", response.body().toString())
                }

                override fun onFailure(call: Call<ResponseBody?>, t: Throwable) {
                    Log.e("zrm", t.message)
                }
            })
        }

相关文章

  • Retorfit2采坑记

    Retrofit2本身并不是一个很复杂的第三方库(至少从使用上是如此的)。那么像我一样知道点nodejs,又想学学...

  • Universal Link 前端部署采坑记

    Universal Link 前端部署采坑记 Universal Link 前端部署采坑记

  • TensorFlow分布式

    TensorFlow分布式采坑记 https://blog.csdn.net/tiangcs/article/de...

  • ReactNative采坑记

    记录一些坑和对rn的理解 1.React-Native 启动时报错 - “no bundle url presen...

  • antd 采坑记

    select placeholder 不起作用。 使用getFieldDecorator传入了一个默认值,如果默认...

  • nginx采坑记

    采坑系列2-nginx 最近因为工作,需要配置nginx,初期nginx都运行的非常的顺利,在终端输入命令 ngi...

  • IOS采坑记

    1.消除input在ios里面的默认内阴影

  • rabbitmq采坑记

    rabbitmq序列化 生产者序列化 ,默认是jdk序列化 消费者序列化,不写的话,只能用字节数组接收,不能转换成...

  • MySQL采坑记

    MySQL版本:8.0.15操作系统:Windows 10 ERROR 1148 (42000): The use...

  • MXNET采坑记

    卷积神经网络的输出单元数计算方法 `Conv2D`要求输入的x的形状为`(batch_size, in_chann...

网友评论

      本文标题:Retorfit2采坑记

      本文链接:https://www.haomeiwen.com/subject/bhgwyktx.html