2012-02-23 2 views
0

내가 SBJsonParser API를 사용하여이 코드와 JSON 웹 서비스에서 정보를 가져 오기 위해 노력하고있어 :- 목적 C

SBJsonParser *parser = [[SBJsonParser alloc] init]; 

// Prepare URL request to download statuses from Twitter 
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://twitter.com/statuses/public_timeline.json"]]; 

// Perform request and get JSON back as a NSData object 
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

// Get JSON as a NSString from NSData response 
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]; 

을하지만 난에 추가해야 웹 서비스 URL은 두 개의 매개 변수, 사용자 및 암호와 함께 값이 있으므로 URL은 "http://twitter.com/statuses/public_timeline.json?user=name & password = test"가됩니다. API에 대한 정보를 검색했지만 성공하지 못했습니다.

많은 도움에 감사드립니다. @"name"@"test"에 대한

답변

2

변수에 값이 있다고 가정합니다. 맞습니까? 그렇다면 NSString의 stringWithFormat : 메소드를 사용하십시오.

은 교체 :

@"http://twitter.com/statuses/public_timeline.json" 

으로 :

[NSString stringWithFormat:@"http://twitter.com/statuses/public_timeline.json?user=%@&password=%@", user, password] 
+0

많은 도움을 주셔서 감사합니다. – roof

+0

-1 다른 답변은 정확합니다. 예 : [NSString stringWithFormat : @ "http : // twitter.com/statuses/public_timeline.json?user=%@&password=%@", @ "user", @ " pas =?/word "] 결과는 다음과 같습니다."http : // // twitter.com/statuses/public_timeline.json?user=user&password=pas=?/word "이 솔루션에는 올바른 URL 이스케이프가 없습니다. –

3
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://twitter.com/statuses/public_timeline.json?user=%@&password=%@", @"name", @"test"]]]; 

대체 자신의 변수는 필요에 따라.

2
NSString *user = @"user"; 
NSString *password = @"password"; 

NSString *urlStr = [NSString stringWithFormat:@"http://twitter.com/statuses/public_timeline.json?user=%@&password=%@", user, password]; 

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString: urlStr]]; 
0

당신은 이런 식으로 할 수도있다.

NSMutableURLRequest *theRequest = [[NSMutableURLRequest alloc] initWithURL:@"http://twitter.com/statuses/public_timeline.json"]; 

[theRequest setHTTPMethod:"@POST"] // Or get, push, put 

NSString theRquest_Body = [NSString stringWithFormat:@"?user=%@&password=%@", 
          [user stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding], 
          [password stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]], 

[theRequest setHTTPBody:[theRequest_body dataUsingEncoding:NSUTF8StringEncoding]];