2014-07-16 3 views
0

난 내 나쁜 영어 죄송 된 .js하지만 난 개발에 아이폰 OSAPI에 내 iOS 앱을 연결하는 방법

내가 로그인 내 응용 프로그램을 연결하고자하는

(로그인, 비밀번호 프랑스어 인턴 및 멍청한 놈이야) 내 인턴십 감독자가 거의 만든 웹 사이트에서. http://factomos.com

그는 (자신이 목표 C를 모르는) 연결을 나에게 API를 주었다 https://factomos.com/api/test/

나는 웹 서비스를 사용하는 것이 필요하다고 보았다

를 (예 : REST의 웹 서비스에 AFNetworking POST)하지만, 그것은 .json에 관한 것입니다. .js가 필요합니다. 저는 길을 잃었습니다. 저는 약간의 도움이 필요합니다. 저는 인턴쉽이 끝나기 전에 여러 번하지 않았습니다.

은 대단히 메르의 하셔 감사

편집 나는 이것을 시도하지만 방법

- (IBAction)logButton:(UIButton *)sender 

{

NSString *username = loginTextField.text; 

NSString *password = pwdTextField.text; 

NSString *urlString = @"https://factomos.com/api/test/"; 
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 
NSDictionary *parameters = @{@"username": username, @"password": password}; 
[manager POST:urlString parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { 

    if ([operation.responseString rangeOfString:@"You are logged in as"].location == NSNotFound) { 
     NSLog(@"Bad login."); 
    } else { 
     NSLog(@"Login successful!"); 
    } 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 
}]; 

}

+0

는 당신이 API에 액세스 할 수 있도록 적절한 API 키를 가지고 있습니까? – Mihir

+0

예 물론! – darKnight

답변

0

당신은 필요가 없습니다 iOS 앱의 자바 스크립트입니다. AFNetworking 또는 내장 NSURLSession과 같은 것을 사용하여 데이터를 가져온 다음 NSJSONSerialization과 같은 것을 사용하여 반환 된 정보를 구문 분석해야합니다.

+0

미안하지만 나는 이해하지 못한다 !!! 나는 AFNetworking에 다른 포스트를 보려고 노력하지만 ... – darKnight

1

더 스티븐의 답변을 확장하려면, 당신은 여기에 코드를 참조 할 수 있습니다 : https://github.com/AFNetworking/AFNetworking#post-url-form-encoded-request

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
NSDictionary *parameters = @{@"foo": @"bar"}; 
[manager POST:@"http://example.com/resources.json" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"JSON: %@", responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 
}]; 

매개 변수 사전 당신이 API에 전송하는 데 필요한 사용자 이름 & 암호 사전이 될 수 있습니다. 행운을 빕니다!

+0

고맙습니다. 수문 – darKnight

0

당신은이 같은 AFHTTP 클래스 없이 API의의를 사용할 수 있습니다

NSDictionary *headers = @{ @"content-type": @"multipart/form-data; boundary=---------------------------14737809831466499882746641449", 
          @"cache-control": @"no-cache" }; 
NSMutableArray *parameters = [[NSMutableArray alloc]initWithObjects:@"param1",@"param2", nil]; 
NSMutableArray *values = [[NSMutableArray alloc]initWithObjects:@"value1",@"value2", nil]; 
NSString *boundary = @"---------------------------14737809831466499882746641449"; 
//NSData *dataImage = UIImageJPEGRepresentation(imageView.image, 1.0f); uncomment to post image 
    NSMutableData *body = [NSMutableData data]; 

for (int i=0;i<parameters.count;i++) { 
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",[parameters objectAtIndex:i]] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"%@",[values objectAtIndex:i]] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
} 
NSLog(@"Parameters : %@",parameters); 
NSLog(@"Values : %@",values); 

//for image 
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"image\"; filename=\"file.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[[NSString stringWithFormat:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
//[body appendData:[NSData dataWithData:dataImage]]; 
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://your API URL here"] 
                 cachePolicy:NSURLRequestUseProtocolCachePolicy 
                timeoutInterval:10.0]; 
[request setHTTPMethod:@"POST"]; 
[request setAllHTTPHeaderFields:headers]; 
[request setHTTPBody:body]; 

NSURLSession *session = [NSURLSession sharedSession]; 
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
       if (error) { 
        NSLog(@"%@", error); 
       } else { 
        NSMutableArray *rowBtnTableLast2=[[NSMutableArray alloc]init]; 
        rowBtnTableLast2=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error]; 
        NSLog(@"PostMethod Result : %@ PostMethod Error : %@",rowBtnTableLast2,error); 
       }}]; 
[dataTask resume]; 
관련 문제