タグ付けされた質問 「retrofit」

Retrofitは、Square、Inc.によるAndroidおよびJava用のタイプセーフなRESTクライアントです。

7
Androidのレトロフィットで「インターネット接続なし」を処理するにはどうすればよいですか
インターネットに接続されていない状況に対応したいのですが。通常、私は実行します: ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting(); (ここから)ネットワークにリクエストを送信する前に、インターネット接続がなかった場合にユーザーに通知します。 私が見たところによると、レトロフィットはこの状況を特に処理しません。インターネット接続がない場合はRetrofitError、理由としてタイムアウトが発生するだけです。 この種類のチェックをRetrofitを使用してすべてのHTTPリクエストに組み込みたい場合、どうすればよいですか?それとも私はそれをするべきですか? ありがとう アレックス
119 android  retrofit 

12
レトロフィットを使用してGSONでネストされたJSONオブジェクトを取得する
私はAndroidアプリからAPIを使用しており、すべてのJSON応答は次のようになります。 { 'status': 'OK', 'reason': 'Everything was fine', 'content': { < some data here > } 問題は、すべてのPOJOにstatus、reasonフィールドがあり、フィールド内にcontent私が欲しい本物のPOJOがあることです。 常にcontentフィールドを抽出するGsonのカスタムコンバーターを作成する方法はありますか?そのため、レトロフィットは適切なPOJOを返しますか?
111 java  android  json  gson  retrofit 

3
Retrofit 2.0とRxJavaを使用して応答ステータスコードを取得する
Retrofit 2.0にアップグレードして、AndroidプロジェクトにRxJavaを追加しようとしています。私はAPI呼び出しを行っており、サーバーからのエラー応答の場合にエラーコードを取得したいと考えています。 Observable<MyResponseObject> apiCall(@Body body); そしてRxJava呼び出しで: myRetrofitObject.apiCall(body).subscribe(new Subscriber<MyResponseObject>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(MyResponseObject myResponseObject) { //On response from server } }); Retrofit 1.9では、RetrofitErrorがまだ存在しており、次のようにしてステータスを取得できます。 error.getResponse().getStatus() RxJavaを使用してRetrofit 2.0でこれをどのように行いますか?

4
OkHttpがあるときにRetrofitを使用する理由
OkHttpを使用すると、HTTP要求を作成してサーバーから応答を取得できます OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(url) .build(); Response response = client.newCall(request).execute(); 次に、Gson libで応答を必要なオブジェクトに変換します。 これはSquare / OkHttpドキュメントからです: その要求/応答APIは、流暢なビルダーと不変性で設計されています。同期ブロッキング呼び出しとコールバックによる非同期呼び出しの両方をサポートします 私はstackOverFlowから読みました Retrofitは、利用可能な場合、OkHTTPを自動的に使用します 。 だから私の質問は正確に何のためにレトロフィットですか? RetrofitがOkHttpでできないことは何ですか? OkHttpとGsonはリクエストAPIの問題を解決すると思いますが、Retrofitが解決する問題は何ですか?
106 java  android  retrofit  okhttp 

10
JsonReader.setLenient(true)を使用して、1行1列1パスで不正な形式のJSONを受け入れます$
このエラーは何ですか?どうすれば修正できますか?アプリは実行中ですが、データを読み込めません。そしてこれは私のエラーです:JsonReader.setLenient(true)を使用して、1行1列1パスで不正な形式のJSONを受け入れます$ これは私の断片です: public class news extends Fragment { private RecyclerView recyclerView; private ArrayList<Deatails> data; private DataAdapter adapter; private View myFragmentView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { myFragmentView = inflater.inflate(R.layout.news, container, false); initViews(); return myFragmentView; } private void initViews() { recyclerView = (RecyclerView) myFragmentView.findViewById(R.id.card_recycler_view); RecyclerView.LayoutManager layoutManager = …
105 android  json  gson  retrofit 

11
テスト用の正方形レトロフィットサーバーモック
正方形のレトロフィットフレームワークを使用する場合、サーバーを模擬的にテストするための最良の方法は何ですか。 可能な方法: 新しいレトロフィットクライアントを作成し、RestAdapter.Builder()。setClient()に設定します。これには、Requestオブジェクトを解析し、jsonをResponseオブジェクトとして返すことが含まれます。 この注釈付きインターフェースをモッククラスとして実装し、RestAdapter.create()によって提供されるバージョンの代わりにそれを使用します(gsonのシリアル化はテストしません) ? 理想的には、モックされたサーバーにjson応答を提供して、同時にgsonシリアル化をテストできるようにしたいです。 どんな例でも大歓迎です。

4
インターセプターを使用してRetrofit 2.0でヘッダーを追加する方法
私たちのチームはRetrofit 2.0の採用を決定し、私はそれについていくつかの初期調査を行っています。私はこのライブラリーの初心者です。 AndroidアプリでRetrofits 2.0を使用interceptorしてカスタマイズされたヘッダーを追加する方法を知りたいです。を使用してRetrofit 1.Xでヘッダーを追加する方法については多くのチュートリアルがありinterceptorますが、APIは最新バージョンで大幅に変更されているため、新しいバージョンでこれらのメソッドをどのように適用するかわかりません。また、Retrofitはまだ新しいドキュメントを更新していません。 たとえば、次のコードでは、Interceptor追加のヘッダーを追加するクラスをどのように実装する必要がありますか?その上、文書化されていないChainオブジェクトは正確には何ですか?いつintercept()呼び出されますか? OkHttpClient client = new OkHttpClient(); client.interceptors().add(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Response response = chain.proceed(chain.request()); // How to add extra headers? return response; } }); Retrofit retrofit = new Retrofit.Builder() .baseUrl(BASE_API_URL) .client(client) .addConverterFactory(GsonConverterFactory.create()) .build();
95 java  android  retrofit 

9
OkHttpリクエストインターセプターにヘッダーを追加するにはどうすればよいですか?
OkHttpクライアントに追加するこのインターセプターがあります。 public class RequestTokenInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); // Here where we'll try to refresh token. // with an retrofit call // After we succeed we'll proceed our request Response response = chain.proceed(request); return response; } } インターセプターでリクエストするヘッダーを追加するにはどうすればよいですか? これを試しましたが、間違いがあり、新しいリクエストを作成するとリクエストが失われます。 …

3
io.reactivex.Observableの呼び出しアダプターを作成できません
簡単なgetメソッドをサーバー(Railsアプリ)に送信し、RxJavaとRetrofitを使用して結果を取得します。私がしたことは: 私のインターフェース: public interface ApiCall { String SERVICE_ENDPOINT = "https://198.50.214.15"; @GET("/api/post") io.reactivex.Observable<Post> getPost(); } 私のモデルはこれです: public class Post { @SerializedName("id") private String id; @SerializedName("body") private String body; @SerializedName("title") private String title; public String getId () { return id; } public String getBody () { return body; } public String getTitle …

4
パラメータを使用した改造とGET
Retrofitを使用してGoogleGeoCodeAPIにリクエストを送信しようとしています。サービスインターフェイスは次のようになります。 public interface FooService { @GET("/maps/api/geocode/json?address={zipcode}&sensor=false") void getPositionByZip(@Path("zipcode") int zipcode, Callback<String> cb); } 私がサービスを呼び出すとき: OkHttpClient okHttpClient = new OkHttpClient(); RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint(Constants.GOOGLE_GEOCODE_URL).setClient(new OkClient(okHttpClient)).build(); FooService service = restAdapter.create(FooService.class); service.getPositionByZip(zipCode, new Callback<String>() { @Override public void success(String jsonResponse, Response response) { ... } @Override public void failure(RetrofitError retrofitError) { } …
92 android  get  retrofit 

14
クラスexampleのコールアダプタを作成できません。単純
SimpleXmlでretrofit2.0.0-beta1を使用しています。RESTサービスからSimple(XML)リソースを取得したい。SimpleXMLを使用したSimpleオブジェクトのマーシャリング/アンマーシャリングは正常に機能します。 このコードを使用する場合(2.0.0コードより前の変換形式): final Retrofit rest = new Retrofit.Builder() .addConverterFactory(SimpleXmlConverterFactory.create()) .baseUrl(endpoint) .build(); SimpleService service = rest.create(SimpleService.class); LOG.info(service.getSimple("572642")); サービス: public interface SimpleService { @GET("/simple/{id}") Simple getSimple(@Path("id") String id); } この例外が発生します: Exception in thread "main" java.lang.IllegalArgumentException: Unable to create call adapter for class example.Simple for method SimpleService.getSimple at retrofit.Utils.methodError(Utils.java:201) at retrofit.MethodHandler.createCallAdapter(MethodHandler.java:51) at retrofit.MethodHandler.create(MethodHandler.java:30) …

4
Androidレトロフィットパラメータ化@ヘッダー
OAuthを使用していますが、リクエストを行うたびにヘッダーにOAuthトークンを挿入する必要があります。@Headerアノテーションが表示されますが、実行時に渡すことができるようにパラメーター化する方法はありますか? これがコンセプトです @Header({Authorization:'OAuth {var}', api_version={var} }) ランタイムでそれらを渡すことができますか? @GET("/users") void getUsers( @Header("Authorization") String auth, @Header("X-Api-Version") String version, Callback<User> callback )

1
Rxjava Schedulers.newThread()とSchedulers.io()による後付け
ネットワークリクエストとSchedulers.newThread()比較Schedulers.io()して使用する利点は何ですかRetrofit。を使用した例をたくさん見てきましたがio()、その理由を理解したいと思います。 状況の例: observable.onErrorResumeNext(refreshTokenAndRetry(observable)) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread())... vs observable.onErrorResumeNext(refreshTokenAndRetry(observable)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread())... 私が見た理由の1つは- newThread()作業単位ごとに新しいスレッドを作成します。io()スレッドプールを使用します しかし、その議論がアプリに与える影響は何ですか?そして、他にどのような側面がありますか?

7
レトロフィットGSONは日付をjson文字列からjava.util.dateにシリアル化します
REST呼び出しにRetrofitライブラリを使用しています。私が行ったことのほとんどはバターのようにスムーズでしたが、何らかの理由でJSONタイムスタンプ文字列をjava.util.Dateオブジェクトに変換する際に問題が発生しました。入ってくるJSONは次のようになります。 { "date": "2013-07-16", "created_at": "2013-07-16T22:52:36Z", } RetrofitまたはGsonにこれらの文字列を変換するように指示するにはどうすればよいjava.util.Date objectsですか?
83 java  android  json  gson  retrofit 

10
Retrofitで動的JSONを処理する方法は?
レトロフィットの効率的なネットワークライブラリを使用してresponseMessageいますが、objectランダムに変更される単一のプレフィックスを含む動的JSONを処理できません。 同じプレフィックス(responseMessage)が場合によっては(動的に)文字列に変更されます。 responseMessageのJson形式のオブジェクト: { "applicationType":"1", "responseMessage":{ "surname":"Jhon", "forename":" taylor", "dob":"17081990", "refNo":"3394909238490F", "result":"Received" } } responseMessage Json形式は動的に文字列型に変更されます。 { "applicationType":"4", "responseMessage":"Success" } 私の問題は、レトロフィットにはJSON解析が組み込まれているため、リクエストごとに1つのPOJOを割り当てる必要があることです。しかし、残念ながら、REST-APIは動的JSON応答に基づいて構築されています。プレフィックスは、success (...)メソッドとfailure(...)メソッドの両方で、文字列からオブジェクトにランダムに変更されます。 void doTrackRef(Map<String, String> paramsref2) { RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint("http://192.168.100.44/RestDemo").build(); TrackerRefRequest userref = restAdapter.create(TrackerRefRequest.class); userref.login(paramsref2, new Callback<TrackerRefResponse>() { @Override public void success( TrackerRefResponse trackdetailresponse, Response response) { Toast.makeText(TrackerActivity.this, …
82 android  json  gson  retrofit 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.