首页 > 用nsurlsessionuploadtask上传图片失败,怎么破?

用nsurlsessionuploadtask上传图片失败,怎么破?

代码如下:

    NSString *uploadPicURLStr = @"/jf/platform/upload/appUpload";
    NSString *urlStr = [NSString stringWithFormat:@"%@%@",BASEURL,uploadPicURLStr];
    NSLog(@"urlstr:%@",urlStr);
    NSURL *url = [NSURL URLWithString:urlStr];
//    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    [request addValue:@"multipart/form-data" forHTTPHeaderField:@"Content-type"];

    [request addValue:@"text/html" forHTTPHeaderField:@"Accept"];
    [request setHTTPMethod:@"POST"];
    [request setCachePolicy:NSURLRequestReloadIgnoringCacheData];
    [request setTimeoutInterval:30];
    NSLog(@"request:%@",request);

    NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil];
//    NSURLSession *session = [NSURLSession sharedSession];
    NSURLSessionUploadTask *uploadTask   = [session uploadTaskWithRequest:request fromData:imgData completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
//        NSLog(@"data:%@",data);
        NSString *string = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"data str:%@",string);
        NSLog(@"success:%@",response);
        NSLog(@"error:%@",error);
    }];
    [uploadTask resume];

imgdata是传过来的nsdata图片数据,
报了个:Separation boundary was not specified 错。
请问怎么破?
更新:打印了上传的数据,

-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didSendBodyData:(int64_t)bytesSent totalBytesSent:(int64_t)totalBytesSent totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend{
    NSLog(@"already sent:%lld",bytesSent);
    NSLog(@"totoal to send:%lld",totalBytesSent);
    NSLog(@"expected send:%lld",totalBytesExpectedToSend);
}

输出结果如下:
2015-06-09 10:42:29.013 Purchaser[1492:52094] already sent:32768
2015-06-09 10:42:29.013 Purchaser[1492:52094] totoal to send:32768
2015-06-09 10:42:29.013 Purchaser[1492:52094] expected send:113761
2015-06-09 10:42:29.013 Purchaser[1492:52097] already sent:32768
2015-06-09 10:42:29.014 Purchaser[1492:52097] totoal to send:65536
2015-06-09 10:42:29.014 Purchaser[1492:52097] expected send:113761
2015-06-09 10:42:29.014 Purchaser[1492:52094] already sent:32768
2015-06-09 10:42:29.014 Purchaser[1492:52094] totoal to send:98304
2015-06-09 10:42:29.015 Purchaser[1492:52094] expected send:113761
2015-06-09 10:42:29.015 Purchaser[1492:52097] already sent:15457
2015-06-09 10:42:29.015 Purchaser[1492:52097] totoal to send:113761
2015-06-09 10:42:29.015 Purchaser[1492:52097] expected send:113761

看起来是传出去了,但是服务器那边没收到,头疼。。。。


[request setValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", _boundary] forHTTPHeaderField:@"Content-Type"];
上传要指定boundary,没有boundary服务器是无法解析body的数据的

【热门文章】
【热门文章】