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