ฉันต้องการตั้งค่าส่วนหัว HTTP สำหรับคำขอ ในเอกสารประกอบสำหรับคลาส NSURLRequest ฉันไม่พบอะไรเกี่ยวกับส่วนหัว HTTP ฉันจะตั้งค่าส่วนหัว HTTP ให้มีข้อมูลที่กำหนดเองได้อย่างไร
ฉันต้องการตั้งค่าส่วนหัว HTTP สำหรับคำขอ ในเอกสารประกอบสำหรับคลาส NSURLRequest ฉันไม่พบอะไรเกี่ยวกับส่วนหัว HTTP ฉันจะตั้งค่าส่วนหัว HTTP ให้มีข้อมูลที่กำหนดเองได้อย่างไร
คำตอบ:
คุณต้องใช้NSMutableURLRequest
NSMutableURLRequest* request = [[[NSMutableURLRequest alloc] initWithURL:url]
autorelease];
[request setValue:VALUE forHTTPHeaderField:@"Field You Want To Set"];
หรือเพิ่มส่วนหัว:
[request addValue:VALUE forHTTPHeaderField:@"Field You Want To Set"];
สำหรับ 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")
สิ่งนี้ใช้ได้กับคุณหรือไม่
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];
ฉันรู้ว่ามันช้าไป แต่อาจช่วยคนอื่นได้สำหรับ 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)
คุณสามารถเพิ่มมูลค่าNSMutableURLRequest
สำหรับ HeaderField:
NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setValue:VALUE forHTTPHeaderField:@"cookie"];
นี่ใช้งานได้สำหรับฉัน
ตัวอย่างรหัส
- (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;
}
}];
}