我有一个 Android 应用程序充当我的后端服务器的客户端。
我正在 Retrofit lib 的帮助下执行一个 POST
http 请求,正文中有一个字符串。
问题是,Retrofit 在使用 GSON 构建器时很可能会转义双引号。
这会导致我的数据库中的一个字段包含双引号,例如:"example_gcm_token"
。
我需要知道我应该在服务器端还是在客户端处理它,以及如何处理。
我认为它不应该在服务器端,因为这意味着我必须为每个端点删除转义引号。
@POST ("/Maguss/users/{userId}/gcmtoken")
Call<Void> setGcmToken(@Path("userId") Long userId, @Body StringEntity gcmToken);
最佳答案
我会尝试用 POJO 替换 StringEntity
:
public class SetGcmTokenRequest {
@SerializedName("gcmtoken")
private String gcmToken;
public String getGcmToken() {
return gcmToken;
}
public void setGcmToken(String gcmToken) {
this.gcmToken = gcmToken;
}
}
然后像这样更改界面:
@POST ("/Maguss/users/{userId}/gcmtoken")
Call<Void> setGcmToken(@Path("userId") Long userId, @Body SetGcmTokenRequest setGcmTokenRequest);
关于android - 进行 HTTP 请求时处理字符串的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36119365/