我需要为请求设置 HTTP 头。在 NSULRequest 类的文档中,我没有发现任何关于 HTTP 头的内容。如何将 HTTP 头设置为包含自定义数据?
You need to use a NSMutableURLRequest
NSMutableURLRequest* request = [[[NSMutableURLRequest alloc] initWithURL:url] autorelease]; [request setValue:VALUE forHTTPHeaderField:@"Field You Want To Set"];
or to add a header:
[request addValue:VALUE forHTTPHeaderField:@"Field You Want To Set"];
NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60]; [request setHTTPMethod:@"POST"]; [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; [request setValue:@"your value" forHTTPHeaderField:@"for key"];//change this according to your need. [request setHTTPBody:postData];
You can add value in NSMutableURLRequest for HeaderField :
NSMutableURLRequest
NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:url]; [request setValue:VALUE forHTTPHeaderField:@"cookie"];
This is working for me.
for Swift
let url: NSURL = NSURL(string: APIBaseURL + "&login=1951&pass=1234")! var params = ["login":"1951", "pass":"1234"] request = NSMutableURLRequest(URL:url) request.HTTPMethod = "POST" var err: NSError? request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: nil, error: &err) request.addValue("application/json", forHTTPHeaderField: "Content-Type") request.addValue("application/json", forHTTPHeaderField: "Accept")
Sample Code
- (void)reqUserBalance:(NSString*)reward_scheme_id id:(NSString*)user_id success:(void (^)(id responseObject))success failure:(void (^)(id responseObject))failure{ NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@reward/%@/user/%@/balance",URL_SERVER,reward_scheme_id,user_id]]; NSLog(@"%@",url); NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url]; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [request setValue:@"true" forHTTPHeaderField:@"Bypass"]; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { options:kNilOptions error:NULL]; if (data.length > 0 && connectionError == nil) { NSDictionary * userPoints = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]; NSString * points = [[userPoints objectForKey:@"points"] stringValue]; NSLog(@"%@",points); [SecuritySetting sharedInstance].usearAvailablePoints = points; } }]; }
I know its late but may help others , For SWIFT 3.0
let url = NSURL(string: "http://www.yourwebsite.com") let mutAbleRequest = NSMutableURLRequest(URL: url!) mutAbleRequest.setValue("YOUR_HEADER_VALUE", forHTTPHeaderField:"YOUR_HEADER_NAME") myWebView.loadRequest(mutAbleRequest)