我需要上传音频文件与二进制机构一样,在 Postman 图像波纹管改型:
我怎样才能上传音频文件与二进制机构一样的形象与翻新?这是我所做的,但它不工作:
@Multipart @POST("upload") fun uploadAudio( @Part audio_file: MultipartBody.Part ): Call<ModelGetAudioUrl>
这是我如何准备多部分体的音频文件。部分:
w8rqjzmb1#
根据你的截图,你可能不想使用一个多部分的身体。
@POST("upload") fun uploadAudio(@Body audio_file: TypedInput): Call<ModelGetAudioUrl>
或@Body audio_file: RequestBody应该可以工作(参见How to send byte[] array in retrofit)。
@Body audio_file: RequestBody
mf98qq942#
我用okhttp来解决这个问题:
val client = OkHttpClient().newBuilder() .callTimeout(90, TimeUnit.SECONDS) .readTimeout(90, TimeUnit.SECONDS) .connectTimeout(90, TimeUnit.SECONDS) .writeTimeout(90, TimeUnit.SECONDS) .build(); val mediaType = "audio/wave".toMediaTypeOrNull(); val body = RequestBody.create(mediaType, soundFile) val request = Request.Builder() .url("https://api.assemblyai.com/v2/upload") .method("POST", body) .addHeader("authorization", "99fa2a59e27e4688b9f7edcdc8ed7185") .addHeader("Transfer-Encoding", "chunked") .addHeader("Content-Type", "audio/wave") .build() Thread { try { val response = client.newCall(request).execute().use { if (it.isSuccessful) { val str = it.body?.string() if (!str.isNullOrEmpty()) { val json = JSONObject(str) sendUrlToTranscript(json.getString("upload_url")) } } context.runOnUiThread { if (!it.isSuccessful) { loading.hideDialog() } } } }catch (e: Exception) { e.printStackTrace() Log.d("uploadAudio", "uploadAudio: ${e.message}") } }.start()
2条答案
按热度按时间w8rqjzmb1#
根据你的截图,你可能不想使用一个多部分的身体。
或
@Body audio_file: RequestBody
应该可以工作(参见How to send byte[] array in retrofit)。mf98qq942#
我用okhttp来解决这个问题: