2014-09-30 2 views
0

iOS 개발에서 웹 서비스를 처음 사용했습니다. 나는 iOS 응용 프로그램에서 호출해야하는 -a, -b 등과 같은 플래그가있는 CURL 명령을 가지고 있습니다. 플래그가없는 명령은 문제가 없지만 플래그가있는 URL 호출에 대한 IOS 코드 조각을 찾을 수 없습니다.iOS 애플리케이션에서 플래그가있는 REST API를 사용하는 방법은 무엇인가요?

//Passing parameters in post request 

NSDictionary* params = @{ 
         @"login":username, 
         @"password":password 
         }; 
NSMutableString* parameterString = [NSMutableString string]; 
for(NSString* key in [params allKeys]) 
{ 
    if ([parameterString length]) { 
     [parameterString appendString:@"&"]; 
    } 
    [parameterString appendFormat:@"%@=%@",key, params[key]]; 
} 
NSString* urlString = [NSString stringWithFormat:URL_USER_LOGIN,APP_KEY]; 
NSURL* url = [NSURL URLWithString:urlString]; 

//this is how cookies were created 

NSArray* all = [NSHTTPCookie cookiesWithResponseHeaderFields:[response allHeaderFields] forURL:url]; 
NSHTTPCookie* currentCookie; 
for (NSHTTPCookie * cookie in all) { 
    NSLog(@"Name: %@ : Value: %@", cookie.name, cookie.value); 

    currentCookie= cookie; 
} 

사용하기 : 예제 명령은 로그인 응답에서 나쁜 내가 솔루션 여기에 단순화 된 코드 부분을 게시 발견

+0

사용중인 코드를 표시하십시오. 옵션이 의미하는 바를 찾기 위해 CURL 문서를 확인 했습니까? – Wain

+1

나는 그것을 알아 냈고 대답을 해답을 게시했다. 고마워요 Dani – Dani

답변

1

영어, 첫째로 내가 만든 쿠키

curl --verbose -a abc.txt -b test.txt http://api.example.com/search.json 

감사합니다, 죄송 위의 생성 된 쿠키를 "쿠키"라는 이름으로 함수의 인수로 전달했습니다.

NSString* urlString = [NSString stringWithFormat:@"http://api.example.com/rest.json"]; 
NSURL* url = [NSURL URLWithString:urlString]; 
NSURLSession* session =[NSURLSession sharedSession]; 
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url]; 
[request setHTTPMethod:@"POST"]; 
[request setHTTPBody:[parameterString dataUsingEncoding:NSUTF8StringEncoding]]; 
[request setHTTPShouldHandleCookies:NO]; 

NSString* Cookie = [NSString stringWithFormat:@"%@=%@",cookie.name,cookie.value]; 
[request setValue:Cookie forHTTPHeaderField:@"Cookie"]; 
__block NSDictionary* jsonResponse; 
NSURLSessionDataTask* task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 

    if(!error) 
    { 
      //do something 
    } 
    else 
     //error 
}]; 
[task resume]; 

감사합니다.