У меня такой сценарий, что мне нужно отправить HTTP-запрос GET на удаленный сервер. Я пошел с NSURLConnection и перехватил запрос в HTTPScoop.Как закодировать резкий знак в NSURL
Формат URL-то вроде этого:
http://domain.com?key=username##somehash&url=someotherurl.com
Я делаю это так:
NSString *urlString = [[NSString alloc]init];
urlString = @"http://domain.com?key=username##somehash&url=someotherurl.com";
NSString *encodedString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString: [NSString stringWithFormat:encodedString]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
[request setHTTPMethod:@"GET"];
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:request delegate:self];
В этом случае я не ускользнули знак #, и запрос я вижу в httpscoop является:
http://domain.com?key=username223somehash&url=someotherurl.com
Если я убегаю резкий знак на% 23, он получает что-то вроде этого в httpscoop:
http://domain.com?key=username22523somehash&url=someotherurl.com
Я пробовал разные комбинации, но всегда имел проблему с резким знаком. Есть ли какая-нибудь прогулка для этого? Благодаря!
Передайте encodedString непосредственно в URLWithString: вместо создания нового stringWithFormat. –
@jshier Вы правы! Благодаря! –