繁体   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