2010-08-23 67 views
1

我試圖在iPhone上使用HTTP POST將請求傳遞給URL。 HTTP正文包含一些轉義字符。NSURLRequest中的轉義字符

NSString *requestMessage=[NSString stringWithString:@"?username/u001password/u001description"]; 
    NSMutableURLRequest *url=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://welcome.com"]]; 
    [url setHTTPMethod:@"POST"]; 
    [url setHTTPBody:[requestMessage dataUsingEncoding:NSUTF8StringEncoding]]; 
    NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:url delegate:self]; 

這裏的轉義字符是/u001

使用此代碼我沒有得到任何正確的答覆。我認爲麻煩只在於轉義字符。請給我一個如何在Cocoa中給出這樣的轉義序列的解決方案。提前致謝。

回答

2

你用反斜槓(\)混淆了正斜槓(/)。你需要一個反斜槓來組成一個轉義序列;斜線只是斜線,「/ u001」只是一個斜線,字母u,兩個數字零和一個數字。

這就是說,如果你真的想在你的字符串中包含U + 0001,即使\u001是錯誤的。你想\x01\u0001(但我似乎記得,如果你使用\u的字符低於U + 0100 GCC抱怨)。

但我不明白爲什麼服務器需要U + 0001作爲分隔符。是否有公開的API文檔用於查詢任何服務器?

0

你想逃脫什麼?我不太明白你想要做什麼。你想寫「&」嗎?然後做。它不是HTML。

除此之外,[NSString stringWithString:@"…constant string…"]是超流體。 @"…constant string…"是你所需要的。

NSString中有一個方法可以將百分號轉義添加到URL:-(void)stringByAddingPercentEscapesUsingEncoding:。也許這就是你要找的東西?