【发布时间】:2017-04-08 13:53:39
【问题描述】:
我想在我的 android 项目中发送原始请求正文。如果我将字符串用于@Body 部分,它包含“”,所以这是错误的。为了解决这个问题,我使用 RequestBody 作为@Body 部分,并像
一样创建 RequestBodyRequestBody requestBody = RequestBody.create(MediaType.parse("text/plain"), "Test");
问题是当我查看改造日志时,请求正文为“null”,如下所示:
04-08 18:07:20.990 25886-25906/? D/Retrofit: ---> HTTP POST http://TestURL
04-08 18:07:20.990 25886-25906/? D/Retrofit: Content-Type: text/plain; charset=UTF-8
04-08 18:07:20.990 25886-25906/? D/Retrofit: Content-Length: 4
04-08 18:07:20.991 25886-25906/? D/Retrofit: null
04-08 18:07:20.991 25886-25906/? D/Retrofit: ---> END HTTP (4-byte body)
我搜索了很多,但找不到问题所在!我应该提一下,我使用的是 1.9 改造,目前无法切换到 2.x。
更新(添加一些代码):
@Headers("Content-Type: text/plain")
@POST("/GetUserInfo")
void GetUserInfo(@Body RequestBody request, Callback<UserInfo> callback);
【问题讨论】:
-
显示完整代码?
-
@Caspain 你需要哪一部分?我现在将添加 Rest API 部分
-
可以添加接收请求的网络服务吗?
-
@JeffersonTavares no webservice 对我不可用,我不明白这个问题的哪一部分与 webservice 有关?这是关于客户端部分,不是吗?
-
这可能与您尝试访问的网络服务有关。例如,假设您的请求不完整,网络服务可能不会发回响应,这可能是您获得空值的原因