gpt4 book ai didi

ios - 通过其核心 api 将图像上传到 DropBox 服务器会在 iOS 中出错

转载 作者:行者123 更新时间:2023-11-29 03:31:14 25 4
gpt4 key购买 nike

我正在使用 DropBox 核心 api OAuth 2.0 身份验证,并且我正在尝试通过其核心 api 上传 UIImage

https://api-content.dropbox.com/1/files//

发现于 https://www.dropbox.com/developers/core/docs (/文件 (POST) )

我的代码是

-(void)uploadData:(NSData *)imageAsData and:(NSString *)fileName{

NSString *urlString=[NSString stringWithFormat:@"https://api-content.dropbox.com/1/files/dropbox/Apps?access_token=%@",dropBoxToken];


NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ;
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];


NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];


NSMutableData *body = [NSMutableData data];

[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

[body appendData:[[NSString stringWithFormat:@"Content-Disposition: attachment; name=\"attachement\"; filename=\"%@\";",fileName] dataUsingEncoding:NSUTF8StringEncoding]];


[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageAsData]];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];




NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];

NSLog(@"returnString=%@",returnString);

其中图像的 NSData 中的 imageAsData 和文件名是“abc.jpg”。

returnString 的输出为 {"error": "文件参数值 'None' 无效"}

我不知道为什么会出现这个问题,请帮助我。

最佳答案

请为自己省去很多麻烦,使用更简单的 files_put端点代替。 (文档中推荐它是有原因的。)

对代码进行粗略编辑(未经测试):

-(void)uploadData:(NSData *)imageAsData and:(NSString *)filePath {

NSString *urlString=[NSString stringWithFormat:
@"https://api-content.dropbox.com/1/files_put/dropbox/%@?access_token=%@",
filePath, dropBoxToken];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"PUT"];

[request setHTTPBody:imageAsData];

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];

NSLog(@"returnString=%@",returnString);
}

关于ios - 通过其核心 api 将图像上传到 DropBox 服务器会在 iOS 中出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19756177/

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