[英]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.