gpt4 book ai didi

objective-c - iOS 设备可以向 Rails 应用程序发送 PUT 请求吗?

转载 作者:可可西里 更新时间:2023-11-01 03:26:46 24 4
gpt4 key购买 nike

我们已经多次尝试向我们的 Rails 服务器发送更新 PUT 请求,但我们不断收到 404“您要查找的页面不存在”

我们的更新方法非常简单(实际上是通用的 rails)。

def update
@user = User.find(params[:id])

respond_to do |format|
if @user.update_attributes(params[:user])
format.html { redirect_to @user, notice: 'User was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end

结束

当我从命令行运行 CURL 来测试更新方法时,它工作正常。但是,当我在 Objective-C 中尝试相同的方法时,它总是会导致 404 错误。

所以我的问题是:iOS 设备可以使用 NSURLConnection 向服务器发送 PUT 请求吗?还是没有实现?

更新::

这不会更新数据库

NSString *dataString = @"user[first_name]=bob";
NSData *postBodyData = [NSData dataWithBytes: [dataString UTF8String] length:[dataString length]];
NSString *urlString = [NSString stringWithFormat:@"example.com/users/1.json"];
NSURL *fullURL = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:fullURL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20];
[request setHTTPMethod: @"PUT"];
[request setHTTPBody:postBodyData];
self.todoConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
receivedData = [NSMutableData data];

这会更新数据库

NSString *urlString = [NSString stringWithFormat:@"example.com/users/1.json?user[first_name]=bob"];
NSURL *fullURL = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:fullURL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20];
[request setHTTPMethod: @"PUT"];
self.todoConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
receivedData = [NSMutableData data];

最佳答案

实际上 @akshay1188 有一个可行的解决方案,但我认为更优雅的方法是将“application/x-www-form-urlencoded”内容类型添加到请求中:

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

关于objective-c - iOS 设备可以向 Rails 应用程序发送 PUT 请求吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10938525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com