Tôi cần đặt tiêu đề HTTP cho một yêu cầu. Trong tài liệu cho lớp NSURLRequest, tôi không tìm thấy bất cứ điều gì liên quan đến tiêu đề HTTP. Làm cách nào để đặt tiêu đề HTTP để chứa dữ liệu tùy chỉnh?
Câu trả lời:
Bạn cần sử dụng NSMutableURLRequest
NSMutableURLRequest* request = [[[NSMutableURLRequest alloc] initWithURL:url]
autorelease];
[request setValue:VALUE forHTTPHeaderField:@"Field You Want To Set"];
hoặc để thêm tiêu đề:
[request addValue:VALUE forHTTPHeaderField:@"Field You Want To Set"];
cho 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")
request.setValue("Some value", forHTTPHeaderField: "Content-Type")
cái này có hiệu quả với bạn không
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];
Tôi biết nó muộn nhưng có thể giúp những người khác, Đối với 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)
Bạn có thể thêm giá trị NSMutableURLRequest
cho HeaderField:
NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setValue:VALUE forHTTPHeaderField:@"cookie"];
Điều này đang làm việc cho tôi.
Mã mẫu
- (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;
}
}];
}