如何使用NSURLSession从Web服务获取数据?
问题描述:
我已经为打印一个演示代码从Web服务的数据,如何使用NSURLSession从Web服务获取数据?
代码
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://54.149.46.64/API/video.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:@"video" forHTTPHeaderField:@"list"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
[[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *requestReply = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(@"requestReply: %@", requestReply);
}] resume];
输出
JSON_Webservices[4496:150468] requestReply: {"Status":"Fail","Message":"Please enter required fields"}
为什么我无法从WS获取数据?请帮帮我。
做工精细在邮差
图片
谢谢。
头
答
请检查这...
NSURL *aUrl = [NSURL URLWithString:@"XXXX"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:aUrl
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
[request setHTTPMethod:@"POST"];
NSString *postString = @"list=video";
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
[[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *requestReply = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(@"requestReply: %@", requestReply);
NSError *jsonError;
NSData *objectData = [requestReply dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:objectData
options:NSJSONReadingMutableContainers
error:&jsonError];
NSLog(@"requestReply: %@", json);
}] resume];
+0
@ user7018875只需复制并过去此代码并检查它即可。 –
+0
非常感谢buddyyyyy .....非常感谢你 – user7018875
+0
工作精细.... – user7018875
我想你不应该设置forHTTPHeaderField视频列表。将其设置为HTTPBody –
如何设置它? @Dheeraj – user7018875
你在POSTMan中传递的参数是什么? –