2013-04-22 2 views
1

이 URL이 있는데 bit.ly API를 통해 줄이려고합니다. 여기에 내 코드& parameters가 포함 된 URL을 짧게합니다.

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]; 

나는 놀랍게도, & 이름 = ABC & 암호 = 123 & 모드 = URL의 오프라인 부분이 손질 만 http://www.example.com

에 해당하는 응답에 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];