NSURLSession - 上傳照片

iOS10以下,AFNetworking上傳照片,發(fā)生內(nèi)存泄漏;因此用NSURLSesion實現(xiàn)上傳照片,代碼如下:

NSString *urlStr = [[self class] createImgUrl];
        
        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlStr]];
        [request setHTTPMethod:@"POST"];
        [request setCachePolicy:NSURLRequestReloadIgnoringCacheData];
        [request setTimeoutInterval:15.f];
        //必須要寫boundary=,不然報錯
        NSString *content = [[NSString alloc]initWithFormat:@"multipart/form-data; boundary=%@", UploadImageBoundary];
        [request setValue:content forHTTPHeaderField:@"Content-Type"];
        //設(shè)置token
        [request setValue:gloginManager.token forHTTPHeaderField:@"apptoken"];
        //配置host
        if ([ServerConfigManager currentUsedServerType] == ServerType_CUSTOM_IP) {
            [request setValue:@"btr.m.jd.com" forHTTPHeaderField:@"host"];
        }
        
        NSMutableData *requestMutableData = [NSMutableData data];
        NSMutableString *myString = [NSMutableString stringWithFormat:@"--%@\r\n", UploadImageBoundary];
        [myString appendString:@"Content-Disposition: form-data; name=\"file\"; filename=\"1.jpg\"\r\n"];
        [myString appendString:@"Content-Type: image/jpg\r\n\r\n"];
        /*轉(zhuǎn)化為二進制數(shù)據(jù)*/
        [requestMutableData appendData:[myString dataUsingEncoding:NSUTF8StringEncoding]];
        /*文件數(shù)據(jù)部分,也是二進制*/
        [requestMutableData appendData:imageData];
        /*已--boundary結(jié)尾表明結(jié)束*/
        [requestMutableData appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", UploadImageBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
        request.HTTPBody = requestMutableData;
        
        /*開始上傳*/
        NSURLSessionDataTask *uploadtask = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
            //請求回調(diào)
            NSString *jsonStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            DLog(@"finished===========%@", jsonStr);
            NSDictionary *dictionary = [LJUtils toArrayOrDictionaryFromJSONString:jsonStr];
            dispatch_async(dispatch_get_main_queue(), ^{
                callback(YES, dictionary, nil);
            });
        }];
        
        [uploadtask resume];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,172評論 3 119
  • 配合著早餐,我買了幾本書,還沒有看,又繼續(xù)入坑了網(wǎng)絡(luò)課程,真的印證了那句話:買書,很多人只是以為擁有了書,就擁有知...
    夏天說早安閱讀 484評論 1 0
  • You are a professional robber planning to rob houses alon...
    六尺帳篷閱讀 378評論 0 1
  • 2017-4-20學(xué)經(jīng)匯報: 一、學(xué)經(jīng)日期:2017年4月20日 農(nóng)歷三月廿四 陰 星期四 寶貝年齡:5周歲5個月...
    b0a4ca4b06a4閱讀 336評論 0 1

友情鏈接更多精彩內(nèi)容