アプリのHTMLWebサイトにデータを送信するための最適なソリューションを探しています。私は次の形式で私のプログラムにいくつかの変数を取得しました:
1 var1
2 var2
3 var3
4 var4
5 var5
等々。それ以上のものはありません。これをウェブサイトに送信する最良の方法は何ですか?
アプリのHTMLWebサイトにデータを送信するための最適なソリューションを探しています。私は次の形式で私のプログラムにいくつかの変数を取得しました:
1 var1
2 var2
3 var3
4 var4
5 var5
等々。それ以上のものはありません。これをウェブサイトに送信する最良の方法は何ですか?
次のコードは、メソッドを使用した簡単な例を示していPOST
ます。(メソッドでデータを渡すPOST
方法)
この記事で説明されているように、次のコードスニペットを使用できます。
ここでは、POSTメソッドの使用方法について簡単に説明します。
1.実際のユーザー名とパスワードで投稿文字列を設定します。
NSString *post = [NSString stringWithFormat:@"&Username=%@&Password=%@",@"username",@"password"];
2.
NSASCIIStringEncoding
NSData形式で送信する必要のある投稿文字列を使用して、投稿文字列をエンコードします。NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
データの実際の長さを送信する必要があります。ポスト文字列の長さを計算します。
NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];
3.
HTTP
メソッド、投稿文字列の長さのhttpヘッダーフィールドなどのすべてのプロパティを使用してUrlrequestを作成します。URLRequest
オブジェクトを作成して初期化します。NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
そのリクエストにデータを送信するURLを設定します。
[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.abcde.com/xyz/login.aspx"]]];
次に、 HTTPメソッド(POSTまたはGET )を設定します。この行をそのままコードに記述します。
[request setHTTPMethod:@"POST"];
HTTP
投稿データの長さでヘッダーフィールドを設定します。[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
また、HTTPヘッダーフィールドのエンコード値を設定します。
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Current-Type"];
HTTPBody
postDataを使用してurlrequestのを設定します。[request setHTTPBody:postData];
4.次に、URLConnectionオブジェクトを作成します。URLRequestで初期化します。
NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self];
初期化されたURL接続を返し、URLリクエストのデータの読み込みを開始します。以下のif/elseステートメント
URL
を使用して、接続が正しく行われたかどうかを確認できます。if(conn) { NSLog(@”Connection Successful”) } else { NSLog(@”Connection could not be made”); }
5. HTTPリクエストからデータを受信するには、URLConnectionクラスリファレンスで提供されているデリゲートメソッドを使用できます。デリゲート方法は以下のとおりです。
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data
上記のメソッドは、postメソッドを使用して取得したデータを受信するために使用されます。
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
この方法では、サーバーに接続されていない場合にエラーレポートを受信するために使用できます。
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
上記の方法は、接続が正常に行われた後にデータを処理するために使用されます。
メソッドについては、このドキュメントとこのドキュメント も参照してください。 POST
そして、これがHTTPPostメソッドのソースコードの最良の例です。