10

我正在NSURLSession为 iOS 7 SDK 中引入的类而苦苦挣扎,我被困在一个点上,我需要用方法调用我的REST APIPUT

我已经实现了GETPOST方法,使用它可以正常工作:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request addValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setHTTPMethod:httpMethod]; // GET/POST works, PUT does not
    NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        if (!error){
            // do something here
            ( ... )
        } else {
            // process error
            ( ... )
        }
    }];
    [postDataTask resume];

不幸的是,设置httpMethodPUT似乎不起作用(它表现为GET)。从 cURL 控制台调用 *url 的内容可以正常工作 - 所以 API 的路径是可以的。

如何使用创建PUT对我的 API 的有效请求NSURLSession

4

1 回答 1

5

您需要使用NSMutableURLRequest setHTTPBody方法设置数据,与 POST 相同。

- (void)setHTTPBody:(NSData *)data
于 2013-11-08T13:40:31.533 回答