問題タブ [retrofit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Android Retrofit パラメータ化された @Headers
私は OAuth を使用しており、リクエストを行うたびに OAuth トークンをヘッダーに入れる必要があります。注釈が表示@Header
されますが、実行時に渡すことができるようにパラメーター化する方法はありますか?
コンセプトはこちら
@Header({Authorization:'OAuth {var}', api_version={var} })
実行時にそれらを渡すことができますか?
java - Cookie 永続化によるレトロフィットの使用
私はレトロフィットを使用していますが、セッション Cookie を透過的に処理する方法を知りたいです。そのために、指定された ApacheClient を拡張し、 ApacheClient.execute(HttpClient, HttpUriRequest) へのカスタム呼び出しで CookieStore を使用します。
組み込みのレトロフィット API (HttpClient 拡張機能なし) を使用してこれを行うより良い方法はありますか?
android - HTTP リクエストのパラメーターとして表示される @Body をレトロフィットする
以前、Square のRetrofitを@GET
Web API 呼び出しに使用し@BODY
ましたが、@POST
呼び出しで JSON を送信しようとすると、サーバー (Rails) で JSON が本文要求ではなくパラメーターとして表示されます。
私の理解では、@BODY
そのメソッドパラメーターが本文のリクエストに追加されます。
私が間違っていることは何か分かりますか?
WebAPI :
Web リクエストを行う:
android - データベースにアクセスする Robospice/ Retrofit バックグラウンド サービス
GETとPOSTの両方の呼び出しを行うRetrofit API Rest クライアントの作成に成功し、それをバックグラウンド サービスとしてRobospiceに組み込みました。
ただし、Robospiceサービスがデータベースに接続し、 GET呼び出しから取得したオブジェクトを非同期的に永続化する必要があります。Retrofit クラスを使用するのCallback
は明らかな方法のようですが、データベースに接続する必要がContext
あり、Context
.
では、 Robospice SpiceService
が処理中のリクエストの前とポストの両方でデータをデータベースに永続化するための最良の方法は何でしょうか?
android - Retrofit を使用した POST 本文 JSON
Retrofit ライブラリを使用して JSONObject を POST しようとしていますが、受信側でリクエストを見ると、コンテンツの長さが0
.
RestService インターフェースで:
そして、それは次のように呼び出されます。
そしてregistrationBundle
、JSONObject
が null または空ではないことは確かです (他のフィールドは確かに問題ありません)。リクエストが行われた時点で、次のようにログアウトします {"zip":19312,"useAccountZip":false,"controllerName":"mine","registrationCode":"GLD94Q"}
。
リクエストの受信側で、リクエストにContent-type: application/json
が含まれていることがわかりますContent-length: 0
。
このような本文で JSON を送信できない理由はありますか? Retrofit を使用する際に簡単なことを見逃していませんか?
android - Robospice with Retrofit を使用して Google appengine に画像をアップロードする
Robospice と Retrofit を使用して、画像を Google appengine ブロブストアにアップロードしようとしています。GAE から提供されたアップロード URL を取得できますが、画像を含む URL をマルチパート POST として送信しようとすると、例外が発生します。
E//RequestRunner.java:134(24689): Thread-3363 リクエスト ネットワークの実行中に例外が発生しました:null
E//RequestRunner.java:134(24689): retrofit.RetrofitError
E//RequestRunner.java:134(24689): retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:343) で
E//RequestRunner.java:134(24689): retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:222) で
E//RequestRunner.java:134(24689): $Proxy0.uploadImage(ネイティブ メソッド) で
E//RequestRunner.java:134(24689):zinger.connexus.network.UploadImage.loadDataFromNetwork(UploadImage.java:24)で
E//RequestRunner.java:134(24689):zinger.connexus.network.UploadImage.loadDataFromNetwork(UploadImage.java:1)で
E//RequestRunner.java:134(24689): com.octo.android.robospice.request.CachedSpiceRequest.loadDataFromNetwork(CachedSpiceRequest.java:45) で
E//RequestRunner.java:134(24689): com.octo.android.robospice.request.RequestRunner.processRequest(RequestRunner.java:130) で
E//RequestRunner.java:134(24689): com.octo.android.robospice.request.RequestRunner$1.run(RequestRunner.java:197) で
E//RequestRunner.java:134(24689): java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390) で
E//RequestRunner.java:134(24689): java.util.concurrent.FutureTask.run(FutureTask.java:234) で
E//RequestRunner.java:134(24689): java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) で
E//RequestRunner.java:134(24689): java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) で
E//RequestRunner.java:134(24689): java.lang.Thread.run(Thread.java:841) で
D//RequestProgressManager.java:75(24689): 進行状況の送信完了
私のAPIインターフェース
私のレトロフィットGsonスパイスサービス
私の Retrofit Spice Request クラス
私の実行呼び出し
android - Android レトロフィット コンバータの例外
サーバーから2つの異なる応答リクエストを取得できる場合、クラスをフォーマット/設計する方法は?
注: JSON 応答形式 (設計) がクラスと異なる場合、Retrofit は例外をスローします。JSON 応答のすべてのフィールドがクラスに存在する必要があります。
JSON 応答のような Java クラス:
JSON 応答:
これが私が応答を要求する方法です:
ログインに失敗した場合、public List<String> message;
Web サーバーからのメッセージが読み込まれます。
しかし、Web サーバーが何も応答しない場合 (ログインの成功) は、レトロフィットによって例外が発生しpublic List<String> message;
ます。空であるため、Web サーバーは、文字列配列ではなく、単純な空の文字列メッセージで応答しました。に変更public List<String> message;
するpublic String message;
と機能しますが、ログインに失敗した場合は文字列配列でなければならないため、できません。
android - Android Retrofit を使用した POST
私は Android プログラミングが初めてで、Retrofit を使用しています。このトピックについて多くの調査を行いましたが、私のニーズに固有の解決策を見つけることができませんでした. API を使用して POST リクエストを作成しようとしています。次のレトロフィット以外のコードでこれを達成しました。
現在、Retrofit を使用して同じ結果を得ようとしていますが、コールバックを使用して API から JSON を取得する方法がわかりません (この呼び出しは非同期で行われるべきだと思いますか?)。
次のメソッドでインターフェイスを作成しました。
そして、アクティビティの onCreate メソッドで RestAdapter などをインスタンス化しました。ユーザーが「ログイン」ボタンを押すと (ユーザー名とパスワードを入力した後)、ボタンの onClick メソッド内で以下が呼び出されます。
ただし、これは意図したとおりに機能していません。これに正しく取り組んでいるとは本当に思いません。そのユーザーに関する JSON 形式のデータのブロックを送り返す POST をサーバーに送信できるようにしたいと考えています。誰かが私を正しい方向に向けることができれば、それは本当にありがたいです. 前もって感謝します