gpt4 book ai didi

ios - ASIHTTPRequest 不更新进度

转载 作者:行者123 更新时间:2023-11-29 04:28:58 25 4
gpt4 key购买 nike

更新

我认为问题出在网络队列上。当我用 [request startAsynchronous][request startSynchronous] 替换 [self.networkQueue addOperation:request] 时,它可以工作。

我更新了代码以使其更加清晰。

原创

我使用 ASIHTTPRequest 上传带有编码图像的 json 文件(或 [request setFile:imagefile...]),但我无法更新进度。

我只得到一个输出:值:1.000000,这意味着上传完成。

incrementUploadSizeBy从未被触发。

网上查了很多资料,还是没有找到答案。这是我的代码。

+ (ASIEngine *)sharedInstance {
static ASIEngine *sharedInstance = nil;
static dispatch_once_t pred;

dispatch_once(&pred, ^{
sharedInstance = [[self alloc] init];
});

return sharedInstance;
}

- (id)init {
if (self = [super init]) {
_networkQueue = [ASINetworkQueue queue];
[_networkQueue setMaxConcurrentOperationCount:MAX_CONCURRENT_OPERATION_COUNT];
[_networkQueue setDelegate:self];
[_networkQueue go];
}
return self;
}

- (void)upload:(NSString *)imageJsonString onCompletion:(void(^)(NSString *responseString))onCompletion onFailed:(void(^)(NSError *error))onFailed {

__unsafe_unretained __block ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:UPLOAD_URL]];
[request setShowAccurateProgress:YES];
[request setUploadProgressDelegate:self];

[request setPostValue:imageJsonString forKey:@"imageString"];

[request setCompletionBlock:^{
NSString *responseString = [request responseString];
onCompletion(responseString);
}];

[request setFailedBlock:^{
onFailed([request error]);
}];

[self.networkQueue addOperation:request];
}

#pragma mark - ASIProgressDelegate

- (void)setProgress:(float)newProgress {
NSLog(@"value: %f", newProgress);
}

- (void)request:(ASIHTTPRequest *)request incrementUploadSizeBy:(long long)newLength {
NSLog(@"data length: %lld", newLength);
}

最佳答案

如果您要上传字符串,则需要上传的数据可能很少(与上传图片时相反),因此它会一步上传所有内容。您可以尝试从文件中读取一个巨大的字符串,看看会发生什么。

关于ios - ASIHTTPRequest 不更新进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11967016/

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