将 Android Studio 更新为 Bumble Bee 并希望使用 Network Inspector。响应不再是纯文本。它在 Arctic Fox(Android Studio 的早期版本)的 Network Profiler 上运行良好。我尝试查看更新文档,但找不到这个方向的任何内容。是否有一些设置需要更改?
Android Studio 大黄蜂 | 2021.1.1 补丁 1
我是Retrofit的新手,但它似乎非常强大.使用普通的JSON一切正常,但是一旦我尝试了GZIPed,我就会收到一个错误:
I/System.out(14883):------ retrofit.RetrofitError:retrofit.converter.ConversionException:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期BEGIN_OBJECT但在第1行第1列是STRING
显然,我在Log中看到的乱码符号无法解析为JSON.
我认为okHttp是正确的gzip东西?我错过了什么?
这些罐子在我的libs文件夹中:
retrofit-1.6.1.jar
okhttp-2.0.0.jar
gson-2.2.4.jar
Run Code Online (Sandbox Code Playgroud)
这样我开始通话:
public interface OvlService {
@GET("/gziptest.gz")
void getOvls(Callback<OvlWrapper> callback);
}
...
OkHttpClient okHttpClient = new OkHttpClient();
Executor executor = Executors.newCachedThreadPool();
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint("http://my.domain") // The base API endpoint.
.setLogLevel(RestAdapter.LogLevel.FULL)
.setExecutors(executor, executor)
.setClient(new OkClient(okHttpClient))
.build();
OvlService ovlService = restAdapter.create(OvlService.class);
ovlService.getOvls(new Callback<OvlWrapper>() {
@Override
public void success(OvlWrapper arg0, Response arg1) {
System.out.println("result: " + arg0.toString());
}
});
Run Code Online (Sandbox Code Playgroud)
该result:线路处于从未显示,而是我看到很多的这些东西T?? ?????=?Mk?A?G?4.??@??A??在RetrofitLog.gzip没有解压缩我怎么办?谢谢!
编辑:
我在我的测试服务器(server.com/ovl.gz)上使用gzip文件尝试了它,我也尝试使用原始的api服务器(server2.com/api.php?id=ovlgzip).结果相同,但标题不同:
测试服务器: …
当我使用 OkHttp 执行 GET 请求时,我的 android 应用程序有非常奇怪的随机行为,有时它有正常的响应主体,但我经常有这个
??????????????Xm??6?+Q>?]y<??+[t? TH=X??Z??k?$??$???[?????<?f??r??q????5?????gE????|?c???y???y?|V?nVX?Q@????
Run Code Online (Sandbox Code Playgroud)
在这种情况下,http 状态每次 200/OK
有人处于这种情况吗?
我正在使用改造来从网上获取数据.现在我的问题是我必须得到一个gziped文件,并且改装需要某种标题,我不知道如何正确实现,显然.我对此进行了研究,但似乎没有任何帮助,因为大多数开发人员都在使用json.
这是我正在尝试做的事情:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("this is my baseurl")
.addConverterFactory(SimpleXmlConverterFactory.create())
.build();
Run Code Online (Sandbox Code Playgroud)
和我的界面:
public interface RestAPI {
@GET("main_data1.gz")
Call<Meritum> getData();
@GET("terms1_EN.gz")
Call<MeritumTerms> getTerms();
@GET
Call<GameResults> getResults(@Url String url);
}
Run Code Online (Sandbox Code Playgroud)
所以我试图得到那个gziped文件,我总是得到这样的响应:
那么我需要添加什么才能使改造识别出gzip文件?