我正在向服务器发送请求并获得 Collection + Json 响应。 PostMan 中的一切都很完美。
但是当我使用 OKHTTP 在代码中执行相同的操作时,我收到一些不可读的字符。
这是我的代码
OkHttpClient client = new OkHttpClient();
requestBody = new FormBody.Builder()
.add("email", email)
.add("password", psd)
.build();
Request request = new Request.Builder()
.url(url)
.addHeader("Accept", "application/vnd.collection+json")
.addHeader("Accept-Encoding", "gzip")
.addHeader("Authorization", "Basic YWRtaW46cmVhbHNlYw==")
.post(requestBody)
.build();
try {
Response response = client.newCall(request).execute();
String s = response.body().string();
response.body().close();
} catch (Exception e) {
e.printStackTrace();
}
我尝试了其他一些网址,这些网址工作得很好。
非常感谢。
终于解决了这个问题,虽然我尝试了很多困难的方法,但这并不是一件很难的事:P
我通过从代码中删除这一行解决了这个问题
.addHeader("Accept-Encoding", "gzip")
希望它对像我一样陷入困境的人有所帮助。
谢谢
从 Web API 获取可用语言时遇到类似的问题。 添加 UTF-8 编码作为标头为我解决了这个问题:
.addHeader("Accept-Encoding", "UTF-8")
也许这对某人有帮助。