我尝试使用body parametres
更新某些字段 NSString *requestString = [NSString stringWithFormat:@"%@/auth/password", self.baseURL ];
[[self managerWithHeaders] PUT:requestString parameters:@{@"foo":@"bar"} success:^(NSURLSessionDataTask *task,id responseObject) {
NSLog(@"%@",responseObject);
} failure:^(NSURLSessionDataTask *task,NSError *error) {
if(failure) failure(error, [self getErrorMessageWithCode:error.code]);
}];
在服务器上获取此方法
{"foo"=>"bar", *"password"=>{"foo"=>"bar"}}
但密码是方法名称。为什么PUT方法尝试更新这个参数?
当我用字符串发送此请求时(@"%@ / auth /密码?foo = bar")一切正常。
答案 0 :(得分:0)
如评论中所述; PUT request
将参数放入HTTPBody
,而不是像URL
那样放入GET request
。
因此,请将它们添加到parameters
而不是URL部分。像这样:
[[self managerWithHeaders] PUT:@"example.com/auth parameters:@{@"foo":@"bar", @"password" : @"sdfsdfsff"} success:^(NSURLSessionDataTask *task,id responseObject) {
NSLog(@"%@",responseObject);
} failure:^(NSURLSessionDataTask *task,NSError *error) {
if(failure) failure(error, [self getErrorMessageWithCode:error.code]);
}];
不要将参数包含在PUT requests