1

データベースのフィールドをインクリメントするPHPスクリプトを実行しようとしています。スクリプトが機能していて、現在ASIHTTPRequestを使用してデータベースを完全に変更していますが、リターンが必要ないため、別のメソッドを使用する必要があるように感じます。

これはHTTPPOSTと呼ばれるものですか?

    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]; 
4

3 に答える 3

1

ドキュメントのフォーム:ASIFormDataRequestを使用してフォームPOSTを送信する

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は元の作成者によって保守されていないことにも注意してください。

于 2012-04-08T03:33:42.650 に答える
0

ASIHTTPRequestデフォルトでは、POST ではなく GET リクエストを送信します。GET がサーバーで何も更新しないのは適切なので、 POST: を使用する必要があります[request setRequestMethod:@"POST"]doScript.phpHTTP 204 No Content 応答を返すだけです。PHPヘッダー ()関数。しかし、サーバーで実際に何が起こったかに関して、少なくともある種のプロトコル固有のステータス コードを返すことは良い設計です。などの単純な JSON 応答を返すことがよくあります{"status":"OK"}

于 2012-04-08T03:34:02.580 に答える
0

POST ではなく、一方向のリクエストになります。

ただし、GET リクエストでデータベースを更新してはならないため、POST を使用する必要があります。

これを行う 1 つの方法は、すぐに応答を返し、データベースを更新することですが、このライブラリはもう維持されていないため ( http://allseeing-i.com/ASIHTTPRequest/ )、NSUrlConnection を使用することをお勧めします。応答を無視して続行します。

于 2012-04-08T03:36:45.113 に答える