菜鸟教程小白 发表于 2022-12-13 13:37:57

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


                                            <p><p>我想向一个 URL 发出 PUT 请求,但是当输出显示状态码为 405 时,这意味着对 URL 的请求不是 put。</p>

<pre><code>NSURLSessionConfiguration *defaultConfigObject = ;

NSURLSession *defaultSession = ];

NSURL * url = ;

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


;

request.HTTPMethod = @&#34;PUT&#34;;
;


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

                                                    if(error == nil)
                                                    {
                                                      ;
                                                      NSLog(@&#34;Response = %@&#34;,response);
                                                    }

                                                }];

;
</code></pre>

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

<p>编辑(回答):</p>

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

<pre><code>NSURLSessionDataTask * dataTask = [defaultSession dataTaskWithRequest:request
                                          completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
       // code
}];
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><pre><code>NSMutableURLRequest *request = [ initWithURL:url];
request.HTTPMethod = @&#34;PUT&#34;;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在 NSURLSession 中发出 PUT 请求?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/34853520/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/34853520/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在 NSURLSession 中发出 PUT 请求?