2016-04-14 5 views
1

こんにちはImはレトロフィット2.0とテストでの作業やテストの一方のエンドポイントとして、.jsonファイルにGETリクエストが.jsonで終了したURLにresquestを作っているhttps://domain.com/contacts.jsonレトロフィット2.0、

BASEURL:https://domain.com/ なendPoint:/contacts.json

はファイルですが、私はあなたが制御を持っている場合は、通常のGETリクエストを作成し、直接内部

+0

あなたがソースコードを投稿し、私達に動作していないかについての詳細を伝えることはできますか? – mbonnin

+0

make base uri 'https:// domain.com /'とエンドポイント 'contacts.json' – EpicPandaForce

答えて

1

こんにちは、私はあなたのコードを使用してファイルを取得するために解決策を見つけ、それが実際に機能するようになりましたが、私はMIMEに触れていませんWebサーバー上で、私は推測しているコードでConverterを追加していないと思う。ありがとうございました。

WebAPIService.java:

public interface WebAPIService { 
@GET("/contacts.json") 
    Call<JsonObject> getContacts(); 
} 

MainAcitivty.java:

Retrofit retrofit1 = new Retrofit.Builder() 
    .baseUrl(BuildConfig.API_ENDPOINT) 
    .addConverterFactory(GsonConverterFactory.create()) 
    .build(); 

WebAPIService service1 = retrofit1.create(WebAPIService.class); 

Call<List<Contact>> jsonCall = service1.getContacts(); 
jsonCall.enqueue(new Callback<List<Contact>() { 

@Override 
public void onResponse(Call<List<Contact>> call, Response<List<Contact>> response) { 
    Log.i(LOG_TAG, response.body().toString()); 
} 

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

をJSONを取得したいですあなたのWebサーバー上で、.jsonファイルをtext/plainまたはapplication/jsonとしてサポートするようにカスタマイズできます。

enter image description here

build.gradleファイル:

dependencies { 
    ...  
    compile 'com.squareup.retrofit2:retrofit:2.0.1' 
    compile 'com.squareup.retrofit2:converter-gson:2.0.1' 
} 
私の次のスクリーンショットを参照してください次のスクリーンショットは、郵便配達を要求使用している

enter image description here

(私はIIS 7.5で行っています)

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()); 
    } 
}); 

Logcat:

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"}}}}} 
+1

こんにちは、ありがとうございました。私の問題ですが、Webサーバーを制御できません。ファイルをダウンロードして解析します。 – Ivor

関連する問題