Tôi đang tạo một HttpUrlConnection
và cần đặt nhiều tiêu đề tùy chỉnh.Ký tự không hợp lệ trong tiêu đề HTTP
Tôi muốn làm điều gì đó dọc theo các dòng sau, nhưng nội dung của bản đồ đầu trang cần phải đến từ một chuỗi đơn. Có bất kỳ ký tự nào là bất hợp pháp hoặc cực kỳ hiếm khi được sử dụng trong cả hai tên tiêu đề HTTP và các giá trị tiêu đề HTTP không?
HashMap<String, String> headers = new HashMap<String, String>();
// TODO: How can I fill the headers map reliably from a single string?
HttpURLConnection c = (HttpURLConnection) url.openConnection();
for(Map.Entry<String, String> e : headers.entrySet())
c.setRequestProperty(e.getKey(), e.getValue());
Giải pháp cho bây giờ
Không có vẻ giống như bất kỳ HTTP tên tiêu đề chứa bất kỳ không gian (thường sử dụng dấu gạch ngang để thay thế?), Vì vậy tôi có thể tách tên với giá trị sử dụng một không gian duy nhất. Đối với các bộ tên-giá trị, có vẻ như tôi đã hơi say vì giá trị có thể chứa khá nhiều thứ theo câu trả lời đã cho. Vì vậy, tôi vừa chọn một nhân vật mà tôi chắc chắn rất có thể sẽ không bao giờ được sử dụng: §
. Nếu nó quay ra nó thực sự cần thiết, tôi sẽ chỉ phải điều chỉnh mã của tôi: p
Header1 Value1§Header2 Value2§Header3 Header3
Xem tại đây: http://stackoverflow.com/questions/4400678/http-header-should-use-what-character-encoding –