2
RetrofitのMultiPart
注釈を使用して、サーバーに問題なくファイルをアップロードできます。Retrofitなどを使用してファイルをサーバーにストリーミングするにはどうすればよいですか?
しかし、私が望むのは、まだディスクに書き込まれているファイルをサーバーにストリームすることです。 Retrofitを使用することは可能ですか?
RetrofitのMultiPart
注釈を使用して、サーバーに問題なくファイルをアップロードできます。Retrofitなどを使用してファイルをサーバーにストリーミングするにはどうすればよいですか?
しかし、私が望むのは、まだディスクに書き込まれているファイルをサーバーにストリームすることです。 Retrofitを使用することは可能ですか?
マルチパートリクエストの改造はokhttp3.RequestBody
を使用します。したがって、データを生成する独自のRequestBody
を作成する必要があります。ここ
はOkHttpレシピ(https://github.com/square/okhttp/wiki/Recipes#post-streaming)
public static final MediaType MEDIA_TYPE_MARKDOWN
= MediaType.parse("text/x-markdown; charset=utf-8");
RequestBody requestBody = new RequestBody() {
@Override public MediaType contentType() {
return MEDIA_TYPE_MARKDOWN;
}
@Override public void writeTo(BufferedSink sink) throws IOException {
sink.writeUtf8("Numbers\n");
sink.writeUtf8("-------\n");
for (int i = 2; i <= 997; i++) {
sink.writeUtf8(String.format(" * %s = %s\n", i, factor(i)));
}
}
private String factor(int n) {
for (int i = 2; i < n; i++) {
int x = n/i;
if (x * i == n) return factor(x) + " × " + i;
}
return Integer.toString(n);
}
};
から採取した例であります