AFNetWorking 3.0上傳圖片

很多iOS應用都會遇到需要上傳圖片的情況,比如修改個人資料時需要上傳自己的頭像,最近我也遇到了這種情況,首先參考之前寫過的AFNetWorking3.0處理請求頭和請求內容

我們在上述博客的基礎之上進行修改,假設我們正在修改個人資料,裏面需要修改個人頭像和其他資料,用請求頭進行用戶識別,請求內容包括其他的個人資料。

首先是請求的URL,

NSString *url = @"your url";

接下來定義AFHTTPSessionManager,

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

設置相關的請求頭,通過requestSerializer來實現,可以根據自己的需求定義一個或者多個請求頭,

[manager.requestSerializer @"value1" forHTTPHeaderField:@"key1"];
[manager.requestSerializer @"value2" forHTTPHeaderField:@"key2"];
......

實現帶請求內容的POST方法,這裏一些文本性質的個人資料可以直接在parameters中進行設置,但是圖片需要另外處理,先將UIImage對象轉化成NSData對象,

NSData *imgData = UIImagePNGRepresentation(UIImage對象);

最後將圖片作爲請求的內容進行上傳,

[manager POST:url
       parameters:@{
                    @"key1":@"value1",
                    @"key2":@"value2"
                    ......
                    }
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    [formData appendPartWithFileData:imgData name:@"key3" fileName:@"avatar.png" mimeType:@"image/png"];
}
        progress:nil
         success:^(NSURLSessionTask *task, id responseObject) {
             NSLog("response:%@", responseObject);
             }
         }
         failure:^(NSURLSessionTask *task, NSError *error) {
             NSLog(@"error:%@", error);
         }];

通過以上過程就實現了利用AFNetWorking 3.0上傳圖片的過程,上傳其他文件類型同理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章