2016-07-31 14 views
0

私のiOSアプリケーションからPOSTメソッドを送信しています。私のコードは正常に動作していますが、コピーしただけです。iOSで必要なヘッダのPOST要求

NSString *post = @"key1=val1&key2=val2"; 
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; 

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
[request setURL:[NSURL URLWithString:@"http://www.nowhere.com/sendFormHere.php"]]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPBody:postData]; 

私の質問は:HTTPヘッダフィールドには何も設定する必要がありますか?

はいの場合、どのヘッダーフィールドが必要ですか?

ありがとうございます!

答えて

0

必要なヘッダーフィールドは、要求を送信するサーバーによって決定されます。 NSURLSessionと友だちは、あなたが望むヘッダーを喜んで提出するか、まったくヘッダーを提出しません。 NSMutableURLRequestクラスリファレンスから

-1

(あなたはNSDataオブジェクトとボディのコンテンツを提供する場合、たとえば)アップロード本体データの長さを自動的に決定することができた場合は、コンテンツの長さの、値あなたのために設定されています。

簡単なPOSTリクエストは、次のようになります。

NSURL *url = [NSURL URLWithString:@"http://www.nowhere.com/sendFormHere.php"]; 
NSData *postData = [@"key1=val1&key2=val2" dataUsingEncoding:NSUTF8StringEncoding]; 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url]; 
[request setHTTPMethod:@"POST"]; //The default HTTP method is “GET”. 
[request setHTTPBody:postData]; //query string is sent in the HTTPBody of a POST request 
+0

感謝を!だから、コンテンツの種類は必要ありませんか?デフォルトのコンテンツタイプは何ですか? –

+0

@BalázsVinczeデフォルトのコンテンツタイプはないようです。しかし、postDataが設定されている場合、利用可能な2つのタイプがあります:http://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data – forkaj