Сокращение URL, содержащего & параметры
У меня есть этот URL, и я пытаюсь сократить его с помощью bit.ly API. Вот мой код
NSString *url = @"http://www.example.com&username=abc&password=123&mode=offline";
NSString *requestStr = [NSString stringWithFormat:@"http://api.bit.ly/v3/shorten?login=%@&apiKey=%@&longUrl=%@&format=txt",login, api_key, url];
requestStr = [requestStr stringByReplacingOccurrencesOfString:@"&" withString:@"&"];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:requestStr]];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *response = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
Я получаю URL в ответ, который соответствует только http://www.example.com/
Удивительно, но &username=abc&password=123&mode= автономные части URL-адреса обрезаются. Это происходит только тогда, когда я делаю это через xcode. На сайте работает нормально. Пожалуйста помоги.
1 ответ
Решение
NSString *url = @"https://www.googleapis.com/urlshortener/v1/url?key=UR_KEY";
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPMethod:@"POST"];
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"UR_LONG_URL",@"longUrl", nil];
[request setHTTPBody:[[dict JSONRepresentation] dataUsingEncoding:NSUTF8StringEncoding]];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *response = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];