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?NSURLYêu cầu đặt tiêu đề HTTP
Trả lời
Bạn cần phải sử dụng một NSMutableURLRequest
NSMutableURLRequest* request = [[[NSMutableURLRequest alloc] initWithURL:url]
autorelease];
[request setValue:VALUE forHTTPHeaderField:@"Field You Want To Set"];
hoặc để thêm một tiêu đề:
[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];
Có lẽ bạn nên thêm một số giải thích cho mã bạn đã đăng. – MasterAM
setValue: @ "application/x-www-form-urlencoded" có nghĩa là, nó có phải là tùy chỉnh không? –
Trong trường hợp hỗ trợ có giới hạn cho POST trong phần mềm máy khách HTTP, nơi dữ liệu thuần túy không thể được gửi trong nội dung thư HTTP, RESTfm có thể xử lý dữ liệu được mã hóa trong cả ứng dụng/x-www-form-urlencoded hoặc multipart/form-data định dạng. Lưu ý: Định dạng ứng dụng/x-www-form-urlencoded và multipart/form-data chỉ áp dụng cho phương thức HTTP POST Lưu ý 2: Định dạng này sử dụng cùng một lược đồ 'mã hóa URL' theo yêu cầu cho chuỗi truy vấn GET các thông số như được mô tả ở đây. Ưu điểm Hỗ trợ kích thước dữ liệu lớn hơn so với những gì có thể bằng chuỗi truy vấn GET. –
Bạn có thể thêm giá trị trong 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.
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")
Tôi đang sử dụng loại tương tự để tạo yêu cầu, nhưng nó trả về dữ liệu ** nil **. Tôi đã cố gắng để những gì sai và điều duy nhất tôi có thể đi lên là giá trị phản ứng trở lại có giá trị khác nhau cho "Content-Type" trái ngược với những gì tôi đang cố gắng để thêm vào đầu mã. 'request.setValue (" Một số giá trị ", forHTTPHeaderField:" Content-Type ")' điều này có phù hợp với bạn không? – Sashi
thử tiêu đề này request.addValue ("text/html", forHTTPHeaderField: "Content-Type") –
Tôi đã thử điều đó, nhưng nó không hoạt động. Cuối cùng sử dụng myParameters.dataUsingEncoding làm việc cho tôi, tôi đã sử dụng một cái gì đó khác đó là lý do tôi nghĩ rằng nó không hoạt động. Cảm ơn đã giúp đỡ. – Sashi
Mẫu Mã
- (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;
}
}];
}
Tôi biết cuối của nó, nhưng có thể giúp đỡ 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)
- 1. Tiêu đề yêu cầu HTTP: Biến UserAgent
- 2. NSURLYêu cầu NSString
- 3. Đặt tiêu đề yêu cầu trong JavaScript
- 4. URL yêu cầu HTTP có phải là một phần của tiêu đề yêu cầu HTTP không?
- 5. Nén tiêu đề Http
- 6. Sửa đổi tiêu đề HTTP cho một yêu cầu JSONP
- 7. Thực hiện yêu cầu tiêu đề HTTP với netcat
- 8. Cách đặt chuỗi tiêu đề yêu cầu
- 9. Tiêu đề HTTP tiêu đề và nnCoection
- 10. Đặt tiêu đề HTTP rộng của ứng dụng trong AngularJS
- 11. Xóa tiêu đề từ Angular.js $ http yêu cầu
- 12. Tiêu đề phạm vi Http yêu cầu toàn bộ tệp
- 13. Đọc tiêu đề tùy chỉnh yêu cầu HTTP
- 14. Cách xác định "tiêu đề yêu cầu http" trong OpenURI
- 15. Nhận tiêu đề phản hồi từ yêu cầu HTTP Ruby
- 16. Tiêu đề yêu cầu HTTP tùy chỉnh trong HTML
- 17. Tiêu đề phạm vi HTTP
- 18. NSURLConnection, NSURLYêu cầu và bộ nhớ đệm từ xa
- 19. Làm cách nào để đặt tiêu đề trong http nhận yêu cầu?
- 20. Đặt tiêu đề HTTP cho tất cả các yêu cầu trong thử nghiệm Flask
- 21. Đặt tiêu đề http cho các yêu cầu được tạo bởi trình duyệt?
- 22. redirect_to với tiêu đề HTTP
- 23. PHP remove tiêu đề HTTP
- 24. "Tiêu đề HTTP thô" là gì? Sự khác biệt giữa "tiêu đề HTTP" và "tiêu đề HTTP thô" là gì?
- 25. Đặt tiêu đề HTTP trong Play 2.0 (scala)?
- 26. Cài đặt tiêu đề http trong Java 6 SE httpserver
- 27. Đặt tiêu đề http tùy chỉnh vào xương sống
- 28. Có thể đặt tiêu đề HTTP tùy chỉnh trong WebView
- 29. NSURLYêu cầu: Cách thay đổi httpMethod "GET" thành "POST"
- 30. Gửi Tiêu đề HTTP với Yêu cầu Web HTTP để Xác thực NTLM
Chỉ là những gì tôi đang tìm kiếm !! Thumbs Up to you !! –
Có API nào để thêm từ điển của tiêu đề không? –
Câu trả lời tuyệt vời! Tôi muốn chỉ ra rằng [câu trả lời] của RamS (http://stackoverflow.com/a/20760445/1778488) có tài liệu hay. – fskirschbaum