当前位置: 首页 > 知识库问答 >
问题:

无法读取改装和RxJava POST请求的字符串响应

韦高格
2023-03-14

API接口

@FormUrlEncoded
@POST("register.php")
Observable<String> registerUser(@Field("email") String email, @Field("password") String password);

在我的MVP节目中

onCreate{
  Observable<String> registerUserObservable= 
  apiInterface.registerUser("test@gmail.com", "1234");
  registerUserObservable.subscribeOn("schedulers.io())
         .observeOn(AndroidSchedulers.mainThread())
         .subscribe(this::handleResult, this::handleError);
}

//methods
private void handleResult(String response){
  Log.d(TAG, response);
}

private void handleError(Throwable throwable){
  Log.d(TAG, throwable.getMessage());
}

这些是我的改造和rxjava代码,我应该发布一封电子邮件和密码来注册用户。服务器应该在成功时返回一个字符串,在失败时也返回一个字符串。

Gson gson = new GsonBuilder()
           .setLenient()
           .create();

retrofit = new retrofit2.Retrofit.Builder()
           .baseUrl(BASE_URL)
           .addConverterFactory(GsonConverterFactory.create(gson))
           .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
           .build();

我添加了gson setLenient代码部分,因为它给了我使用JsonReader.setLenient(true)在第2行第1列接受格式错误的JSON路径$错误,如果我没有它。添加此后,我得到了JSON文档没有完全消耗。错误,我不知道如何解决它。这是因为来自服务器的返回响应是一个字符串吗?

提前谢谢。

共有1个答案

茹展鹏
2023-03-14

如果您的服务器发送正常的字符串响应而不是JSON字符串,您需要使用另一个将字符串读入String的转换器。很高兴官方有标量转换器。

一个转换器,支持将字符串和原语及其盒装类型转换为文本/纯正文。

 类似资料:
  • 我正在开发一个Android应用程序,它使用改造来创建一个restful客户端。为了调试网络调用,我想显示或转储实际被调用的url。有办法做到这一点吗?我在下面提供了一些代码,显示了应用程序当前如何使用翻新。 客户端接口定义: 使用生成的客户端的服务:

  • 是否可以使用改型库只累加字符串响应?我有一种情况,我需要在我的链接上添加查询,以便该链接看起来像:localhost//register?handle=someid SomeID是整数,当我这样做时,我将从服务器收到由20个字符组成的字符串格式的响应。我怎样才能得到那个回应?改型甚至可以处理不是Json格式的响应吗?

  • 问题内容: 我想构造与OPENROWSET方法一起使用的查询。 例子: 但是当我这样做时,我得到了错误: ’+’附近的语法不正确 如何建立查询?谢 问题答案: 尽管in中的查询被指定为字符串,并且通过这种方式看起来非常像动态查询,但是语法不允许将其以同样的方式构造成一部分。 恐怕,您将必须构建一个动态查询,该查询将调用,如下所示:

  • 我正在使用改造2.x,我想记录请求和响应的标头和正文。 这是我正在做的,我的问题是请求的标题没有被记录在Android Monitor中,但其余的一切都被记录了。 Gradle版本 使用RC1和3.0.1由于错误问题报告错误链接

  • 场景是:EventHub- 文件格式:CSV(带引号、管道分隔和自定义架构) 我正在尝试读取来自eventhub的CSV字符串。Spark成功地使用正确的模式创建了数据框,但在每条消息之后,数据框最终都是空的。 我设法在流媒体环境之外做了一些测试,当从文件中获取数据时,一切都很顺利,但当数据来自字符串时,一切都失败了。 所以我找到了一些链接来帮助我,但没有一个工作: can-i-read-a-cs

  • 我正在尝试在RHEL 7.4上安装weblogic 12c,当我打开窗口开始安装时,所有字符都无法读取。 我可以将过去的这些字符复制到记事本中,所有字符在那里都是可读的。 使用的Java版本:1.7.0\U 79-b15