当您使用采用NSURLRequest 的方法(例如dataTaskWithRequest: 方法)时,您会更加灵活。这样您就可以自定义 HTTP 方法、请求正文、标头,基本上是 NSURLRequest 的每个参数,因为它是您创建的。
采用NSURL create NSURLRequest for you 的方法,因此您以后无法修改请求。例如dataTaskWithURL:
方法为指定的URL 创建一个HTTP GET 请求,您不能将其更改为POST。
使用NSURLRequest 创建任务的示例。您可以在这里看到您可以非常灵活:
// Create a simple JSON data.
NSData *JSONData = [NSJSONSerialization dataWithJSONObject:@{ @"numbers" : @[@1, @2, @3] } options:0 error:nil];
// Create a POST request with our JSON as a request body.
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
// Set HTTP method.
request.HTTPMethod = @"POST";
// Set request body.
request.HTTPBody = JSONData;
// Create a task.
NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request
completionHandler:^(NSData *data,
NSURLResponse *response,
NSError *error)
{
...
}];
使用NSURL 创建任务的示例。在这里您不能修改请求。它是为您创建的。
// Create a GET task.
NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithURL:url
completionHandler:^(NSData *data,
NSURLResponse *response,
NSError *error)
{
...
}];