通过 http retrofit2 请求发送 WAV 文件 - Android Studio

Send WAV files though http retrofit2 requests - Android Studio

我是 运行 服务器上的机器学习模型,可处理 WAV 文件。我可以使用 Android Studio 通过 HTTP 请求以 WAV 格式发送存储在移动 phone 中的 WAV 文件吗?

到目前为止,我正在使用这样的 retrofit2 发出(获取)请求:

MainActivity.java:

private void getbuttonclicked() {
    Call call = RequestManager.INSTANCE.getService().getChords();
    call.enqueue((Callback)(new Callback() {public void onResponse(@NotNull Call call, @NotNull Response response) {
        Intrinsics.checkParameterIsNotNull(call, "call");
        Intrinsics.checkParameterIsNotNull(response, "response");
        if (response.isSuccessful()) {
            ((TextView) findViewById(R.id.output_text)).setText("REQUEST OK");
        }
    }

DataManager.kt:

object RequestManager {
    val interceptor = HttpLoggingInterceptor()
    val client = OkHttpClient.Builder().addInterceptor(interceptor).build()


    init {
        interceptor.level = HttpLoggingInterceptor.Level.BODY
    }

    val retrofit = Retrofit.Builder()
            .baseUrl("http://myip/")
            .addConverterFactory(GsonConverterFactory.create())
            .client(client)
            .build()

    val service = retrofit.create(Api::class.java)

}

Api.kt:

interface Api {
    @GET(".")
    fun getChords(): Call<chord_model>
}

chord_model.java:

public class chord_model {
    @SerializedName("Chords")
    @Expose
    private List<String> chords = null;
    @SerializedName("Bass")
    @Expose
    private List<String> bass = null;

    public List<String> getChords() {
        return chords;
    }

    public void setChords(List<String> chords) {
        this.chords = chords;
    }

    public List<String> getBass() {
        return bass;
    }

    public void setBass(List<String> bass) {
        this.bass = bass;
    }

}

我想我必须使用 post 请求,但我该如何发送整个文件?

你应该看看这篇文章:

https://www.c-sharpcorner.com/article/upload-files-to-server-using-retrofit-2-in-android/

基本上您将发送一个 POST 请求。使用邮递员,它会是这样的: