0

嗨,我NSURLSessionDataTask在应用程序中用于后台 http 调用,如下所示,

 NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

但是,当我尝试 dataTaskWithRequest:request 时,我有 2 个服务器说https://demo.demosite.comhttp://214.43.45.35/它不支持这两个服务器。我在这里读到 dataTaskWithRequest:request 不支持后台支持吗?

NSURLSessionUploadTask应用程序未运行时在后台支持。任何人都可以分享NSURLSessionUploadTask回调示例吗?

4

2 回答 2

2

您必须创建 backgroundSession 并传递唯一标识符。

NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:identifier];
        sessionConfiguration.HTTPMaximumConnectionsPerHost = 10;

     NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration];

     NSURLSessionUploadTask *uploadDataTask = [session uploadTaskWithRequest:multipartRequest fromFile:tmpFileUrl completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

     }];

希望它会奏效。如果您有任何问题,请询问。

于 2016-07-26T05:40:56.493 回答
1

下面是示例:

 NSData* data = [Your_json_string dataUsingEncoding:NSUTF8StringEncoding];

    NSURLSession *session = [NSURLSession sharedSession];

    NSURL *url = [NSURL URLWithString:@"your_url"];

    NSMutableURLRequest *request =

    [[NSMutableURLRequest alloc] initWithURL:url];

    [request setHTTPMethod:@"POST"];

    NSURLSessionUploadTask *uploadTask = [session         uploadTaskWithRequest:request fromData:data completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        //Perform operations on your response here
    }];

    //Don't forget this line ever
    [uploadTask resume];
于 2016-07-26T05:07:51.820 回答