我已经阅读了很多关于Retrofit的内容,但我真的对如何使用改造实现对tt-rss api的发布请求有所了解。
在tt-rss api文档中,它说要使用curl测试登录请求,它应该是这样的:
$ curl -d '{"op":"login","user":"you","password":"xxx"}' http://example.dom/tt-rss/api/
我使用了以下调用,但却给出了“NOT_LOGGED_IN”错误消息
@FormUrlEncoded
@POST("/api/login")
Observable<login> doLogin(@Field("user") String user,@Field("password") String password);
我不知道这次电话有什么问题。
答案 0 :(得分:0)
您应该在参数上使用@Body
注释将其作为JSON传输。您可以传递复杂对象或Map
以下是Kotlin中的示例(在纯Java中很容易做到)
data class LoginRequest(val login : String, val password : String, val op : String = "login")
trait LoginService {
POST("/api/login")
fun doLogin(Body login : LoginRequest) : Obervable<login>
POST("/api/login")
fun doLogin2(Body login : Map<String, String) : Observable<login>
}