簡體   English   中英

如何在API .js上連接我的iOS應用

[英]How to connect my iOS app on API .js

我為我的英語不好而感到抱歉,但是我是法語實習生,對iOS開發很不滿意

我想用幾乎由實習主管創建的網站上的登錄名(登錄名,密碼)連接我的應用程序。 http://factomos.com

他給了我一個API以進行連接(他不了解目標C): https : //factomos.com/api/test/

我看到有必要使用Web服務(例如:AFNetworking POST到REST Web服務),但是它是關於.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);
}];

}

要進一步擴展斯蒂芬的答案,您可以在此處參考代碼: 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的用戶名和密碼字典。 祝好運!

您的iOS應用程序中不需要JavaScript。 您需要獲取數據(使用AFNetworking之類的東西或內置的NSURLSession之類的東西),然后使用NSJSONSerialization類的NSJSONSerialization來解析返回的信息。

您可以使用沒有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];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM