android - Retrofit 2.0,请求 GET 到 .json 文件作为端点

标签 android json retrofit2

你好,我正在使用 Retrofit 2.0 进行测试,其中一项测试是对以 .json 结尾的 url 进行重新请求:

示例:https://domain.com/contacts.json

baseURL: https://domain.com/ 端点:/contacts.json

里面是一个文件,但是我想做一个普通的GET请求,直接获取里面的json

最佳答案

如果您可以控制您的 Web 服务器,您可以自定义它支持 .json 文件作为 text/plainapplication/json。请看我下面的截图(我已经用 IIS 7.5 完成了)

enter image description here

下面的截图是使用PostMan的请求:

enter image description here

build.gradle 文件:

dependencies {
    ...    
    compile 'com.squareup.retrofit2:retrofit:2.0.1'
    compile 'com.squareup.retrofit2:converter-gson:2.0.1'
}

WebAPIService.java:

public interface WebAPIService {
    @GET("/files/jsonsample.json")
    Call<JsonObject> readJson();
}

MainAcitivty.java:

Retrofit retrofit1 = new Retrofit.Builder()
        .baseUrl("http://...")
        .addConverterFactory(GsonConverterFactory.create())
        .build();

WebAPIService service1 = retrofit1.create(WebAPIService.class);
Call<JsonObject> jsonCall = service1.readJson();
jsonCall.enqueue(new Callback<JsonObject>() {
    @Override
    public void onResponse(Call<JsonObject> call, Response<JsonObject> response) {
        Log.i(LOG_TAG, response.body().toString());
    }

    @Override
    public void onFailure(Call<JsonObject> call, Throwable t) {
        Log.e(LOG_TAG, t.toString());
    }
});

日志:

04-15 15:31:31.943 5810-5810/com.example.asyncretrofit I/AsyncRetrofit: {"glossary":{"title":"example glossary","GlossDiv":{"title":"S","GlossList":{"GlossEntry":{"ID":"SGML","SortAs":"SGML","GlossTerm":"Standard Generalized Markup Language","Acronym":"SGML","Abbrev":"ISO 8879:1986","GlossDef":{"para":"A meta-markup language, used to create markup languages such as DocBook.","GlossSeeAlso":["GML","XML"]},"GlossSee":"markup"}}}}}

关于android - Retrofit 2.0,请求 GET 到 .json 文件作为端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36634466/

相关文章:

javascript - 对于每个数组值,检查它是否在 json 数组中。如果是跳过json数组进行下一次迭代

java - JAX-RS,Map<String,String> 到 JSON 没有开销?

java - Retrofit2拦截器在Android中将特殊字符转换为问号

java - 为什么我的 'userID' 初始化为 0 而不是从 PHP 发送的内容?

安卓 :How to load image dynamically from server by its name from SQlite

android - 可扩展的 ListView 总是滚动到底部问题

javascript - 如何将多个 id 数组对象合二为一

android - Android 中不同的 colorControlActivated 样式

android - Titanium:检查设备上是否安装了应用程序(android)

java.lang.NoClassDefFoundError : okhttp3. OkHttpClient$Builder