首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >IOS post文件报错?

IOS post文件报错?

提问于 2015-12-15 15:30:01
回答 1关注 0查看 282

REST API POST 服务器返回 结果 :"code":-63,"message":"fileid **与签名不匹配**"执行代码如下:NSString Signature= HttpTools GetCosSignature:Model.ImageBucket; //根据url初始化request NSMutableURLRequest request = [NSMutableURLRequest requestWithURL:NSURL URLWithString:Url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20]; //得到图片的data NSData Imgdata; if(FilePath){ UIImage image=UIImage imageWithContentsOfFile:FilePath; //返回为JPEG图像。 //判断图片是不是png格式的文件 if (UIImagePNGRepresentation(image)) { //返回为png图像。 Imgdata = UIImagePNGRepresentation(image); }else { //返回为JPEG图像。 Imgdata = UIImageJPEGRepresentation(image, 1.0); } } // 给请求头加入固定格式数据 NSMutableData *data = NSMutableData data; /****文件参数相关设置*/ // 设置边界 注:必须和请求头数据设置的边界 一样, 前面多两个“-”;(字符串 转 data 数据) [data appendData:@"------WebKitFormBoundaryftnnT7s3iF7wV5q6" dataUsingEncoding:NSUTF8StringEncoding]; [data appendData:@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]; // 设置传入数据的基本属性, 包括有 传入方式 data ,传入的类型(名称) ,传入的文件名, 。 NSString ContentHead=NSString stringWithFormat:@"Content-Disposition: form-data; name=\"filecontent\"; filename=\"%@\"",FileName; [data appendData:ContentHead dataUsingEncoding:NSUTF8StringEncoding]; [data appendData:@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]; // 加入数据内容 data appendData:Imgdata; [data appendData:@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]; [data appendData:@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]; // 设置边界 [data appendData:@"------WebKitFormBoundaryftnnT7s3iF7wV5q6" dataUsingEncoding:NSUTF8StringEncoding]; [data appendData:@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]; /**非文件参数相关设置**/ // 设置传入的类型(名称) [data appendData:@"Content-Disposition: form-data; name=\"op\"" dataUsingEncoding:NSUTF8StringEncoding]; [data appendData:@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]; [data appendData:@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]; // 传入的名称username = lxl [data appendData:@"upload" dataUsingEncoding:NSUTF8StringEncoding]; [data appendData:@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]; // 退出边界 [data appendData:@"------WebKitFormBoundaryftnnT7s3iF7wV5q6--" dataUsingEncoding:NSUTF8StringEncoding]; [data appendData:@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]; request setValue:Signature forHTTPHeaderField:@ "Authorization"; request setHTTPBody ata; //http method request setHTTPMethod:@"POST"; NSHTTPURLResponse urlResponese = nil; NSError error = [NSError allocinit]; NSData resultData = NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponese error:&error; NSString result= [NSString alloc initWithData:resultData encoding:NSUTF8StringEncoding];SDK POST 方法 报 -61 **bucket**与签名中的**bucket**不匹配NSString Signature= HttpTools GetCosSignature:Model.ImageBucket; NSLog(@"%@",Signature); TXYFileUploadTask task=[TXYFileUploadTask allocinitWithPath:FilePath sign:Signature bucket:Model.ImageBucket customAttribute:nil uploadDirectory:Model.ImageBucket msgContext:@""];; TXYUploadManager manager= [TXYUploadManager alloc initWithCloudType:TXYCloudTypeForFile persistenceId:nil appId:Model.AppId]; manager upload:task complete:^(TXYTaskRsp resp, NSDictionary context) { //retCode大于等于0,表示上传成功 if (resp.retCode >= 0) { //得到图片上传成功后的回包信息 TXYPhotoUploadTaskRsp photoResp = (TXYPhotoUploadTaskRsp )resp; NSLog(@"上传成功!,code:%d desc:%@ ,url :%@, FileId:%@ ", resp.retCode, resp.descMsg,photoResp.photoURL,photoResp.photoFileId); } else { NSLog(@"上传图片失败,code:%d desc:%@ ", resp.retCode, resp.descMsg); } } progress:^(int64_t totalSize, int64_t sendSize, NSDictionary context) { } stateChange:^(TXYUploadTaskState state, NSDictionary context) { };

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档