gpt4 book ai didi

grails - Groovy HTTPBuilder + RxJava返回一个空对象/可观察到

转载 作者:行者123 更新时间:2023-12-02 14:29:07 26 4
gpt4 key购买 nike

def login(String email, String password, String apiKey) throws HttpResponseException {

def postBody = [
email : email,
password: password
]

def http = new HTTPBuilder('https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=' + apiKey)

return Observable.just({ Observer observer ->

def thread = new Thread({

http.post(body: postBody, requestContentType: ContentType.JSON) { resp, json ->
println 'status code ' + resp.statusLine.statusCode
if (resp.statusLine.statusCode == 200 || resp.statusLine.statusCode == 201) {
observer.onNext(json)
} else {
observer.onError(new Throwable('broken'))
}

observer.onCompleted()

}

http.handler.failure = { resp ->
observer.onError(new Throwable('failure'))
observer.onCompleted()

}

http.handler.'400' = { resp ->
observer.onError(new Throwable('bad request'))
observer.onCompleted()

}

} as Runnable)

thread.start()

return Subscriptions.empty()
})
}

因此,这是我在服务类中编写的用于调用Firebase auth REST API的登录名的方法。但是现在的事情是它没有返回任何数据。

我在Intellij中调试了此程序,结果发现当我执行login.subscribe时,我期望它可以将json返回给我,但是没有。

那我做错了什么?

最佳答案

我不是Groovy开发人员,但此行似乎是错误的:

return Observable.just({ Observer observer ->

您正在创建一个lambda对象,该对象只能由其返回,但实际上没有任何内容被执行。您可能正在寻找
return Observable.create({ Emitter emitter -> 

编辑:

JavaDoc

关于grails - Groovy HTTPBuilder + RxJava返回一个空对象/可观察到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49758166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com