用AFN / NSURLConnection Post上傳數據的"+"會變成空格 url編碼問題

用NSURLConnection Post上傳數據的"+"會變成空格

AFNetworking 請求參數編碼問題處理服務器

在一次項目中,要post圖片到服務器上去,在以前要將圖片轉換成base64的格式。可是發現post上去的圖片在服務器端老是不存在,通過與後臺數據的對比發現image轉成base64String裏的「+」,post到服務器上都變成了空格。鬱悶的很呀!開始沒仔細去想,就直接叫後臺將我post的string中的空格所有替換成「+」,這倒也算是解決了這個問題。可是總以爲這不是解決問題的最佳途徑。後臺通過查看一些資料,終於發現這個狀況在post時,若是url中含有特殊字符(如「+=等」)就會出現的。可是在post以前對這些特殊符號作一次UTF8就能夠了解決這個問題了。下面貼代碼:post

NSString *baseStr = [imgData base64Encoding];
 NSString *baseString = (__bridge NSString *) CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, 
                                                       (CFStringRef)baseStr, 
                                                       NULL, 
                                               CFSTR(":/?#[]@!$&’()*+,;="), 
                                               kCFStringEncodingUTF8);
[urlRequest setHTTPBody:[baseString dataUsingEncoding:NSUTF8StringEncoding]];

https://blog.csdn.net/wang790492446/article/details/27309367編碼

相關文章
相關標籤/搜索