우리는 우리의 레일 서버에 업데이트 PUT 요청을 보내는 여러 번 시도하고 우리는iOS 기기가 Rails 앱에 PUT 요청을 보낼 수 있습니까?
우리의 업데이트 방법은 매우 간단 404 "존재하지 않는 찾고 있던 페이지"(실제로 일반 레일) 수신 계속.
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 요청을 보낼 수 있습니까 아니면 구현되지 않았습니까?
UPDATE :
이
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];
이 당신이 NSMutableURLRequest을하고 HTTP 방식을 설정할 수 있습니다
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];
루비 코드 경우 게시 귀하의 질문에 대한 IOS 지원 아마도 당신을 잘하지 않습니다. 대신 Objective-C 코드를 게시하면 HTTP 메서드를 올바르게 설정했는지 확인할 수 있습니다 (아래 그림 참조). – glorifiedHacker
네, 죄송합니다. 나는 레일즈 끝을 쓰고 있는데, 다른 개발자가 목표를 쓰고 있었고 그의 코드에 접근 할 수 없었다. 이제 끝났어. –
'['및 ']'문자를 이스케이프 처리하지 않는다는 사실과 관련이 있는지 궁금합니다. @ "user % 5Bfirst_name % 5D = brian"문자열에서 파생 된 데이터로 HTTP 본문을 설정해보십시오. – glorifiedHacker