簡體   English   中英

iOS必要標頭上的POST請求

[英]POST request on iOS necessary headers

我正在從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標頭字段中設置任何內容?

如果是,則需要哪些標題字段?

謝謝!

哪些標頭字段是必需的,將由您向其發送請求的服務器確定。 NSURLSession和朋友將很樂意提交您想要的任何標題,或者根本不提交任何標題。

從NSMutableURLRequest類參考:

如果可以自動確定上載正文數據的長度(例如,如果為正文內容提供一個NSData對象),則將為您設置Content-Length的值。

一個簡單的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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM