0
我需要上傳視頻的API,這該是多麼我已經實現了OKHTTP要求:如何使用OkHTTP將視頻作爲多部分請求上傳? [Android]產品
private void makeRequest(Uri uri)
{
pr1.show();
try
{
String path = uri.toString();
Log.e("PATH",path);
File file = new File(new URI(path));
try {
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("file", file.getName(),
RequestBody.create(MediaType.parse("video/mp4"), file))
.addFormDataPart("title", "damn")
.build();
Request request = new Request.Builder()
.url(URL)
.header("SproutVideo-Api-Key","XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
.post(requestBody)
.build();
client.newCall(request)
.enqueue(new Callback() {
@Override
public void onFailure(final Call call, IOException e)
{
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
String res = response.body().string();
Log.e("SUCCESS",""+res);
pr1.dismiss();
}
});
} catch (Exception ex) {
// Handle the error
}
}
catch (Exception e){}
}
但是,我無法完成一個成功的請求。
登錄這一行Log.e("PATH",path);
顯示:
內容://com.android.providers.media.documents/document/video%3A75611
當我在添加一個換行符這行:client.newCall(request)
,並運行調試器,應用程序不會在任何時候結束,所以我假設請求沒有完成。什麼可能造成這種情況?這是否是正確的實施方式?
我會嘗試使用'execute()'來代替'enqueue()'進行調試。 – PeterMmm
它有什麼不同?請讓我知道'execute()'而不是'enqueue()'! – OBX
你是否對協議'content://'有所瞭解?我期望'http://'在這裏。 – PeterMmm