Ios 如何在NSURLSession中发出PUT请求?

Ios 如何在NSURLSession中发出PUT请求?,ios,objective-c,nsurlsession,put,Ios,Objective C,Nsurlsession,Put,我想对URL发出PUT请求,但当输出显示状态代码为405时,这意味着对URL的请求不是PUT NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration]; NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject deleg

我想对URL发出PUT请求,但当输出显示状态代码为405时,这意味着对URL的请求不是PUT

NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration];

NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate: nil delegateQueue: [NSOperationQueue mainQueue]];

NSURL * url = [NSURL URLWithString:@"http://httpbin.org/put"];

NSMutableURLRequest *request =[[NSMutableURLRequest alloc]initWithURL:url];
NSData *postbody = [@"name=testname&suggestion=testing123" dataUsingEncoding:NSUTF8StringEncoding];


[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

request.HTTPMethod = @"PUT";
[request setHTTPBody:postbody];


NSURLSessionDataTask * dataTask = [defaultSession dataTaskWithURL:url
                                                completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

                                                    if(error == nil)
                                                    {
                                                        [request setHTTPBody:data];
                                                        NSLog(@"Response = %@",response);
                                                    }

                                                }];

[dataTask resume];
有人能指出我哪里出了问题吗?从过去几个小时以来,我一直在读很多关于这个问题的书,但我没能弄明白。请不要将此标记为重复,因为之前的op没有添加正文,这与我的代码不同。另外,上面提到的URL接受任何数据作为主体,所以我想我设置数据的目的是不相关的

编辑(回答):

昨天撞了我的头之后,我的一个大四学生帮我解决了这个问题,希望这能帮助别人。数据任务需要与请求对象一起提供,而不是与URL一起提供,这就是它在Charles web调试工具中始终显示“GET”的原因。代码应如下所示:

NSURLSessionDataTask * dataTask = [defaultSession dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
       // code
}];

请检查下面的链接:-我希望这对你有用。我替换了NSMutableData*postbody=[NSMutableData];使用NSData*postbody=[@“name=testname&suggestion=testing123”数据使用编码:NSUTF8StringEncoding];还是不走运。我已经查过那个链接了。还是谢谢你。
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
request.HTTPMethod = @"PUT";