• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何在 NSURLSession 中发出 PUT 请求?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 13:37:57 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我想向一个 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 = @"UT";
[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];

有人能指出我哪里出错了吗,自过去几个小时以来,我已经阅读了很多有关此问题的信息,但我无法弄清楚。请不要将此标记为重复,因为之前的操作没有添加正文,而我的代码并非如此。提到的 URL 也接受任何数据作为正文,所以我猜我设置的数据是无关紧要的。

编辑(回答):

在昨天敲了我的头之后,我的一位前辈帮我解决了这个问题,希望这会对某人有所帮助。数据任务需要提供请求对象而不是 URL,这就是它在 Charles Web 调试工具中总是显示“GET”的原因。代码应该如下:

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



Best Answer-推荐答案


NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
request.HTTPMethod = @"UT";

关于ios - 如何在 NSURLSession 中发出 PUT 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34853520/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap