2014-02-11 4 views
-2

ios에서 컬 웹 서비스를 호출하는 방법, iOS 앱에서 Curl 웹 서비스를 호출하여 JSON 형식으로 반환합니다.iOS에서 컬 웹 서비스를 호출하는 방법

미리 감사드립니다.

+2

환영합니다. 어떤 노력을 했습니까? –

+0

iOS에서 간단한 웹 서비스를 이미 사용했으며 Curl 웹 서비스가 새로 도입되었습니다. 이제는 컬 웹 서비스에서 어떻게 결과를 얻을 수 있는지 알고 싶습니다. – user2547516

+0

자세한 내용을 작성하십시오. curl은 http 클라이언트입니다. –

답변

0

말풍선은 HTTP 요청을하기위한 메커니즘 일뿐입니다. 말리는 것을 사용할 필요가 없습니다. 대신 일반 iOS HTTP 요청을 사용하십시오. 샘플 코드 :

NSError *error; 
NSURLResponse *response; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:someurlString] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30.0f]; 
[request setHTTPMethod:@"GET"]; 
[request setValue:@"application/json; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
if (parameters) { 
    [request setHTTPBody:[NSJSONSerialization dataWithJSONObject:somejsondata options:0 error:nil]]; 
} 

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
if(error) { 
    return error; 
} 
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; 
return json;` 
0

curl을 로그인하려는 경우이 방법을 사용해보십시오. 다른 말풍선을 부를 때는 이것을 사용할 수 있습니다. 그게 나를 위해 완벽하게 작동합니다.

NSURL * url = [NSURL URLWithString : @ "http : /// xyz/login /"];

 NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:url]; 

    [req setHTTPMethod:@"PUT"]; 

    NSString *boundary = @"0x0hHai1CanHazB0undar135"; 

이 NSString * 컨텐트 유형 = [있는 NSString stringWithFormat "다중/폼 데이터, 경계 = %의 @"@ 경계];

[req addValue:contentType forHTTPHeaderField: @"Content-Type"]; 

    NSMutableData *body = [NSMutableData data]; 

    // username 

    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"email\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"%@",usernameField.text] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

    // password 

    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"password\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"%@",passwordField.text] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
    // close form 
    [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

    // set request body 
    [req setHTTPBody:body]; 

NSError * error = nil; NSURLResponse * response; NSData * urlData = [NSURLConnection sendSynchronousRequest : req returningResponse : & 응답 오류 : & 오류];

+0

이것은 단지 http 요청입니다 ... 그것은 컬이 아니며 추가는 json을 직렬화하는 것보다 훨씬 어렵습니다. – Stephen

관련 문제