問題タブ [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.
android - Retrofit 1.8.0 を使用したマルチパート リクエストが機能しない
AndroidでRetrofit 1.8.0を使用してマルチパートリクエストを作成しようとして、4日ほどかかりました。私のインターフェースは次のようになります
しかし、サーバー側では、次のメッセージを受け取ります
ご覧のとおり、ファイル部分はすべての部分でそれを送信していますが、id と post[body] のパラメーターの値がありません
Retrofit が送信しようとしているのは次のとおりです。
これは、HttpMime ライブラリがマルチパートで送信しているものです。違いは、Retrofit に対する「Content-Transfer-Encoding」ヘッダーです。
どんな手掛かり?前もって感謝します
- - - - - - - - - - - - - - - -解決 - - - - - - - - - ----------------
最後に、私はこのように解決しました。実際、私の答えは@lazypigにかなり近いです。これは良いガイドラインでした
私が変更した唯一のものは、彼のクラス「ByteArrayTypedOutput」でした
「MultipartTypedOutputCustom」というクラスを作成しましたhttp://pastie.org/10549360
そして、これが私のインターフェースの外観です
「PostsRetrofitAPI.java」クラス
「PostsService.java」クラス
android - retrofit + okhttp : GZIPInputStream を取得する
レトロフィット 1.4.1 と okhttp 1.3.0 を使用して WS で gzip を有効にすると問題が発生します。
次の行にコメントしてrequest.addHeader("accept-encoding", "gzip");
も問題はありませんが、gzip が有効になっているとエラーが発生します (私の要求は に分類されfailure
ます)。
これが私のログキャットですrequest.addHeader("accept-encoding", "gzip");
gzip を有効にするにはどうすればよいですか?
事前にThx
java - Android - モデルに byte[] が含まれている場合、Retrofit が null として受信される
Retrofit を使用して、一部のデータを WebAPI REST サービスに戻しています。ただし、モデルに が含まれている場合、byte[]
WebAPI が受け取る値は null です。プロパティを削除するSignature
と、残りの値でモデルが期待どおりに受信されます。
また、Signature
プロパティを null のままにしても機能します。WebAPI が null 値を受け取るのは、署名にコンテンツが含まれている場合のみです。
バイト配列には、デバイスでキャプチャされた PNG 署名イメージが含まれています。
byte[]
プロパティを含む私のモデルは次のとおりです。
次のコードを使用してモデルを送信します。
Retrofit の DataService メソッドは次のようになります。
私は次の残りの方法に送信しています:
android - Retrofit を使用して本文なしで POST しようとすると、GSON 解析例外で失敗します
REST API と統合しているので、Retrofit を使用しています。ヒットする必要がある URL は次のとおりです。
http://{{server}}/api/v1/stuff/{{id}}/deactivate
API を実装するインターフェイスを作成しました。
問題は、メソッドを呼び出すと、次のスタック トレースで失敗することです。
これは、私が本文に何も投稿していないという事実によって引き起こされていると私は信じています。この問題を回避する最善の方法は何ですか?
注: POSTMan を使用して API を呼び出すことに成功しました。
java - レトロフィット メソッドの宣言で可変引数を使用できますか?
次のように定義された API エンドポイントがあります。
GET https://api-server.com/something/{id_or_ids}
ここids
で、単一のオブジェクト IDまたはIDのコンマ区切りリストを指定できます。
例えば
https://api-server.com/something/abcd1234
https://api-server.com/something/abcd1234,abcd4567,gdht64332
単一の IDが指定された場合(および一致するオブジェクトが見つかった場合)、json オブジェクトが返されます。
{ "blah" : "blah" }
複数の IDが指定されている場合、 json 配列で応答を取得します。
[{"blah1":"bleh"}, {"blah2":"meh"}, {"blah3":"blah"}]
私は現在、これを 2 つの方法として実装する必要があると考えています (1 つの方法で実行できますか?)。
単一の IDを取り、単一のオブジェクトを返すもの:
と
複数の IDを取り、オブジェクトの配列を返すもの。
2 番目のメソッドvarargsをフィードし、それらを id フィールドに連結する方法はありますか?
ありがとう
java - Flex Mobile アプリで Retrofit を使用する
私は、ネイティブ拡張機能を備えた Android 用の Flex Mobile アプリに取り組んでいます。Java コードで Retrofit を使用しようとしていますが、Retrofit 呼び出しが失敗します。
次のインターフェイスが定義されています。
次にAsyncTask
、Java コードの適切なポイントから呼び出します。そのdoInBackground
メソッドは次のようになります。
これらすべてから、LogCat にリストが出力されることを期待しています。代わりに、次の例外が発生します。
Flex Mobile のネイティブ拡張内で Retrofit を動作させる方法はありますか?
android - メインスレッドにコールバックを後付けする
次のような呼び出しで:
コールバックはメイン スレッドで実行されることになっています (RxJava を使用していない場合)。私の質問は次のとおりです。
- 解析はどこで行われますか (プロセス応答に XML コンバーターを使用していると仮定しましょう)。これはメインスレッドですか、それとも別のスレッドですか? コンバーターの実装に依存しますか?
- (重い) 検証ルール/ビジネス ルールを含める必要がある場合、 callable 内に新しいスレッドを生成する必要がありますか? それとも Callback メソッドで実行しても問題ありませんか?
自分でスレッド管理を回避して (または IntentService などの他のアプローチを使用して) Web サービスからアクティビティのデータを取得する方法を探していますが、RxJava を使用することを恐れています (実験的サポートのため)。この問題に対処するための別の提案されたアプローチはありますか?
java - Retrofit を使用して JSON を取得する
私は現在、Roman が彼の例で使用している例のように、Retrofit を使用して Muzei 拡張機能を構築しようとしています。
レトロフィットについてはよくわかりませんが、これは私が持っているものです
ArtSource.java
ArtService.java
基本的に、http://elliothesp.co.uk/muzei.php から JSON を取得し、各アイテムを publishArtwork に渡そうとしています。JSONフィードから写真が見つからないため、例外が実行され、それを機能させる方法がわからない