2014-09-04 50 views
0

我在jstring中獲取cookie值。服務器發送它爲base64encoded UTF8字符串。我比較了服務器和我的結束字符串,我得到完全相同的字符串。爲什麼我不能用/(正斜槓)像字符一樣發送標題?

現在我需要用n=作爲前綴和;作爲後綴來修飾此值。 (我在做的第2行的代碼)。

如果我不使用行號。 1,字符串變爲空Java服務器。否則服務器正在獲得價值。

jstring = [jstring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSString *cookieVal=[NSString stringWithFormat:@"n=%@%@",jstring,@";"]; 
[self.requestSerializer setValue:cookieVal forHTTPHeaderField:@"Cookie"]; 

我們在iOS中使用AFNetworking作爲請求和響應。如果字符串包含/(正斜槓),那麼我們的Java服務器上獲取填充錯誤,如果字符串不包含/,那麼字符串將根據需要去我們已經看到非常奇怪的圖案,

正如你可以在行號碼中看到的那樣。 3,我們發送這個值作爲http/https請求的頭部。

我已經嘗試了很多東西,如this(嘗試使用我的字符串最後一個代碼)。此外,試圖使用不同的編碼,但問題仍然存在。

回答

0

此網址轉換不會轉換我們在ios設備鍵盤中的所有特殊字符。 我們必須將其與吹塑功能進行轉換。將此用作類別。

- (NSString *) URLEncodedString_ch { 


    return (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)self, NULL, (CFStringRef)@"!*'\"();:@&=+$,/?%#[]%~_. ", CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding))); 
} 
+0

我也試過這個,但沒有工作。 – 2014-09-04 06:07:01

+0

我使用相同的代碼/正在轉換%2F,嘗試轉換兩次它可能是一些解碼在服務器端。 – 2014-09-04 06:18:03

相關問題