2012-04-08 2 views
1

데이터베이스의 필드를 증가시키는 PHP 스크립트를 실행하려고합니다. 스크립트가 작동하고 현재 ASIHTTPRequest를 사용하여 데이터베이스를 완벽하게 수정하고 있지만 반환 할 필요가없는 다른 메서드를 사용해야하는 것처럼 느낍니다.objective-c를 사용하여 PHP 스크립트 실행

HTTP POST 란 무엇입니까? (가) docs: Sending a form POST with ASIFormDataRequest

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
[request setPostValue:@"Ben" forKey:@"first_name"]; 
[request setPostValue:@"Copsey" forKey:@"last_name"]; 
[request setFile:@"/Users/ben/Desktop/ben.jpg" forKey:@"photo"]; 

뿐만 아니라 ASIHTTPRequest는 기본적으로 maintained anymore by it's original author.

답변

1

형태. GET이 서버에서 아무 것도 업데이트하지 않는 것이 적절하므로 POST : [request setRequestMethod:@"POST"]을 사용해야합니다. doScript.php은 HTTP 204 No Content 응답을 반환 할 수 있습니다. PHP header() 함수. 그러나 서버에서 실제로 발생한 일과 관련하여 적어도 특정 프로토콜 별 상태 코드를 반환하는 것이 좋습니다. 종종 {"status":"OK"}과 같은 간단한 JSON 응답 만 반환합니다.

+0

그래서 다른 API로 전송해야합니까? 그렇다면 어떤 것을 권하고 싶습니까? 감사. – Apollo

+0

내가 링크 된 게시물에는 몇 가지 권장 사항이 있습니다. 지금 AFNetworking을 사용하고 있습니다. – vikingosegundo

0

ASIHTTPRequest는 GET 요청을 전송 아니라고주의, 게시하지

incrementOrDecrementURL = [[NSString alloc] initWithFormat:@"http://myURL/doScript.php"]; 

NSURL *requestURL = [[NSURL alloc] initWithString:incrementOrDecrementURL]; 

//The actual request 
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:requestURL]; 
// Becoming the request delegate 
//To get callbacks like requestFinished: or requestFailed: 
[request setDelegate:self];  

// Start request 
[request startAsynchronous]; 
0

POST가 아니라 일방적 인 요청입니다.

그러나 데이터베이스를 GET 요청으로 업데이트하면 안되므로 POST를 사용해야합니다.

이 작업을 수행하는 한 가지 방법은 즉시 응답을 반환 한 다음 데이터베이스를 업데이트하는 것입니다. 그러나이 라이브러리는 더 이상 유지 관리되지 않으므로 (http://allseeing-i.com/ASIHTTPRequest/) NSUrlConnection을 사용하고 응답을 무시하고 계속해.

+0

@ James.Black NSURLConnection을 사용하여 approcah로 돌아 오는 중 ... 가능하다고 생각하십니까? 기본적으로 사용자가 버튼을 눌러이 스크립트를 백그라운드에서 실행할 수있게하고 싶습니다 ..... – Apollo

+0

@ derek.lo - 예, 백그라운드에서이 작업을 수행 할 수 있습니다. 이것 좀 봐 : http://stackoverflow.com/questions/1728631/asynchronous-request-to-the-server-from-background-thread –

관련 문제