2012-06-01 1 views
1

У меня такой сценарий, что мне нужно отправить 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 

Я пробовал разные комбинации, но всегда имел проблему с резким знаком. Есть ли какая-нибудь прогулка для этого? Благодаря!

+1

Передайте encodedString непосредственно в URLWithString: вместо создания нового stringWithFormat. –

+0

@jshier Вы правы! Благодаря! –

ответ

1

заменить # на% 23 (source).

Редактировать - oops, не видели остальную часть вашего сообщения. Не уверен в NSURL, но у меня также были проблемы с параметрами кодирования в URL-адресах с NSURL. Я закончил использовать ASIHTTPRequest, который позаботился обо всех проблемах с кодировкой. Я бы рекомендовал сделать то же самое.

+0

Думаю, я упомянул, что сделал это. Он не справляется с ошибкой% 23. –

 Смежные вопросы

  • Нет связанных вопросов^_^