1

我有这种情况,我需要向远程服务器发送一个 GET http 请求。我使用 NSURLConnection 并在 HTTPScoop 中拦截请求。

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

我尝试过不同的组合,但总是对尖锐的标志有问题。有没有这方面的走动?谢谢!

4

1 回答 1

1

将 # 替换为 %23 ( source )。

编辑 - 哎呀,没有看到你的消息的其余部分。不确定 NSURL,但我之前也很难用 NSURL 对 URL 中的参数进行编码。我最终使用了ASIHTTPRequest,它处理了所有的编码问题。我建议也这样做。

于 2012-06-01T19:22:54.317 回答