gpt4 book ai didi

android - Koush Ion Library - 使用 Progressbar、TimeoutException 上传多部分/表单数据

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:28 25 4
gpt4 key购买 nike

我将像这样使用 Ion 将文件上传到 rest API(基于 Koush 提供的示例代码)

        if (Upload != null && !Upload.isDone() && !Upload.isCancelled()){
resetUploadReq();
return;
}

String UploadUrl = Constants.Video_Upload_URL+userToken;
Upload = Ion.with(UploadActivity.this).load(UploadUrl)
.uploadProgressHandler(new ProgressCallback() {

@Override
public void onProgress(long uploaded, long total) {
int mProgress = (int) (100*uploaded / total);
mUploadBtn.setProgress(mProgress);
}
})
.setTimeout( 15 * 1000)
.setMultipartFile("file", new File(Path))
.asJsonObject()
.setCallback(new FutureCallback<JsonObject>() {

@Override
public void onCompleted(Exception ex, JsonObject result) {
resetUploadReq();
if (ex == null){
JsonObject ReturnJson = result.getAsJsonObject();
Status = ReturnJson.get("status").getAsBoolean();

if (Status == true){

VIDEO = ReturnJson.get("video").getAsString();
// ConvertingCheck(VIDEO);
}else{
mUploadBtn.setProgress(0);
Crouton.makeText(UploadActivity.this, "An Error occurred, Try again later", Style.ALERT).show();
}

}else{
mUploadBtn.setProgress(0);
Crouton.makeText(UploadActivity.this, "An Error occurred, Try again later", Style.ALERT).show();
ex.printStackTrace();
return;
}
}
});

上传过程似乎正确完成,意味着我可以从 uploadProgressHandler 获得上传百分比,并且根据该信息我的进度条结束。当我到达进度条的末尾时,这意味着文件已上传!但它似乎不是真的,因为我得到了这个错误:

java.util.concurrent.TimeoutException
com.koushikdutta.async.http.AsyncHttpClient$2.run(AsyncHttpClient.java:240)
com.koushikdutta.async.AsyncServer.lockAndRunQueue(AsyncServer.java:686)
com.koushikdutta.async.AsyncServer.runLoop(AsyncServer.java:703)
com.koushikdutta.async.AsyncServer.run(AsyncServer.java:609)
com.koushikdutta.async.AsyncServer.access$4(AsyncServer.java:598)
com.koushikdutta.async.AsyncServer$13.run(AsyncServer.java:556)

几次后(从 40 秒到 2、3 分钟取决于文件大小)我收到 API 的响应,表示视频已上传!API JsonObject Response: {"status": true, "message": "上传成功", "video": "PJ0O1"}

我的错在哪里?

详细日志(0-100 之间的数字是上传百分比):

09-17 00:24:56.239: D/PARSVID(30058): (0 ms) http://parsvid.com/api/v1/upload/?token=a0d2741da0e- - - - - - - - - - - - - -ce37c5bb2d862: preparing request
09-17 00:24:56.239: I/PARSVID(30058): (0 ms) http://parsvid.com/api/v1/upload/?token=a0d2741da0e- - - - - - - - - - - - - -ce37c5bb2d862: Using loader: com.koushikdutta.ion.loader.HttpLoader@434bbdf0
09-17 00:24:56.244: D/PARSVID(30058): (0 ms) http://parsvid.com/api/v1/upload/?token=a0d2741da0e- - - - - - - - - - - - - -ce37c5bb2d862: Executing request.
09-17 00:24:56.244: D/PARSVID(30058): (1 ms) http://parsvid.com/api/v1/upload/?token=a0d2741da0e- - - - - - - - - - - - - -ce37c5bb2d862: Reusing keep-alive socket
09-17 00:24:56.244: V/PARSVID(30058): (1 ms) http://parsvid.com/api/v1/upload/?token=a0d2741da0e- - - - - - - - - - - - - -ce37c5bb2d862: socket connected
09-17 00:24:56.249: V/PARSVID(30058): (5 ms) http://parsvid.com/api/v1/upload/?token=a0d2741da0e- - - - - - - - - - - - - -ce37c5bb2d862:
09-17 00:24:56.249: V/PARSVID(30058): POST /api/v1/upload/?token=a0d2741da0e- - - - - - - - - - - - - -ce37c5bb2d862 HTTP/1.1
09-17 00:24:56.249: V/PARSVID(30058): Host: parsvid.com
09-17 00:24:56.249: V/PARSVID(30058): User-Agent: Dalvik/1.6.0 (Linux; U; Android 4.4.2; SM-G900H Build/KOT49H)
09-17 00:24:56.249: V/PARSVID(30058): Accept-Encoding: gzip, deflate
09-17 00:24:56.249: V/PARSVID(30058): Connection: keep-alive
09-17 00:24:56.249: V/PARSVID(30058): Accept: */*
09-17 00:24:56.249: V/PARSVID(30058): Cookie: csrftoken=Ljk6MvEvaYGy6aEaAw4LzvCffknajnvE; sessionid=69fmhs7r8x1y2bcbs8pvf5vbr4faymjx
09-17 00:24:56.249: V/PARSVID(30058): Content-Type: multipart/form-data; boundary=----------------------------7a7817fbefd0490382024db9fa0abe3f
09-17 00:24:56.249: V/PARSVID(30058): Content-Length: 2297298
09-17 00:24:56.249: V/PARSVID(30058):
09-17 00:24:56.249: I/System.out(30058): 0
09-17 00:24:56.269: I/System.out(30058): 0
09-17 00:24:56.269: I/System.out(30058): 1
09-17 00:24:56.274: I/System.out(30058): 2
09-17 00:24:56.274: I/System.out(30058): 5
09-17 00:24:56.274: I/System.out(30058): 11
09-17 00:24:56.274: I/System.out(30058): 22
09-17 00:24:56.274: I/System.out(30058): 27
09-17 00:25:35.029: I/System.out(30058): 33
09-17 00:25:35.044: I/System.out(30058): 36
09-17 00:25:50.794: I/System.out(30058): 45
09-17 00:25:50.819: I/System.out(30058): 46
09-17 00:26:07.094: I/System.out(30058): 55
09-17 00:26:23.379: I/System.out(30058): 56
09-17 00:26:23.414: I/System.out(30058): 65
09-17 00:26:39.419: I/System.out(30058): 68
09-17 00:26:39.424: I/System.out(30058): 74
09-17 00:26:54.209: I/System.out(30058): 79
09-17 00:26:54.239: I/System.out(30058): 84
09-17 00:27:08.369: I/System.out(30058): 90
09-17 00:27:08.394: I/System.out(30058): 93
09-17 00:27:22.194: I/System.out(30058): 99
09-17 00:27:22.199: V/PARSVID(30058): (145955 ms) http://parsvid.com/api/v1/upload/?token=a0d2741da0e- - - - - - - - - - - - - -ce37c5bb2d862: request completed
09-17 00:27:22.199: I/System.out(30058): 99
09-17 00:27:22.204: I/System.out(30058): 100
09-17 00:27:37.219: E/PARSVID(30058): (160976 ms) http://parsvid.com/api/v1/upload/?token=a0d2741da0e- - - - - - - - - - - - - -ce37c5bb2d862: Connection error
09-17 00:27:37.229: E/PARSVID(30058): null
09-17 00:27:37.229: E/PARSVID(30058): java.util.concurrent.TimeoutException
09-17 00:27:37.229: E/PARSVID(30058): at com.koushikdutta.async.http.AsyncHttpClient$2.run(AsyncHttpClient.java:240)
09-17 00:27:37.229: E/PARSVID(30058): at com.koushikdutta.async.AsyncServer.lockAndRunQueue(AsyncServer.java:686)
09-17 00:27:37.229: E/PARSVID(30058): at com.koushikdutta.async.AsyncServer.runLoop(AsyncServer.java:703)
09-17 00:27:37.229: E/PARSVID(30058): at com.koushikdutta.async.AsyncServer.run(AsyncServer.java:609)
09-17 00:27:37.229: E/PARSVID(30058): at com.koushikdutta.async.AsyncServer.access$4(AsyncServer.java:598)
09-17 00:27:37.229: E/PARSVID(30058): at com.koushikdutta.async.AsyncServer$13.run(AsyncServer.java:556)

最佳答案

此处讨论了类似的问题:

Uploading multipart file with Koush Ion library

它说在加载 URL 的参数中包含“POST”:

ion.load("POST",url)

关于android - Koush Ion Library - 使用 Progressbar、TimeoutException 上传多部分/表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25882974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com