I am trying to use custom headers, and I am having an issue with how
Net::HTTP handles this. Let’s say I want to add the header “a-header”
to the HTTP message I am sending to a server. When I turn on a TCP
monitor to check on the message, I notice that Net::HTTP changes
“a-header” to “A-Header”. I would like to prevent Net::HTTP from
changing the casing of my header, but I would also like to avoid
modifying the Net::HTTP library to do this. Is there a solution to
prevent Net::HTTP from changing the casing of “a-header” without
modifying the Net::HTTP library (like a function in that library to call
to stop the casing change)? If not, what is the cleanest solution to
modify Net::HTTP for this issue? Thanks!
On Nov 15, 2007 5:36 AM, Edward L. [email protected] wrote:
I am trying to use custom headers, and I am having an issue with how
Net::HTTP handles this. Let’s say I want to add the header “a-header”
to the HTTP message I am sending to a server. When I turn on a TCP
monitor to check on the message, I notice that Net::HTTP changes
“a-header” to “A-Header”. I would like to prevent Net::HTTP from
changing the casing of my header
“”""4.2 Message Headers
HTTP header fields, which include general-header (section 4.5),
request-header (section 5.3), response-header (section 6.2), and
entity-header (section 7.1) fields, follow the same generic format as
that given in Section 3.1 of RFC 822 [9]. Each header field consists
of a name followed by a colon (“:”) and the field value. Field names
__are case-insensitive.“”"
http://www.ietf.org/rfc/rfc2616.txt
HTH,
Keith
This doesn’t help me at all. I already know that field names are
case-insensitive. However, when my web server receives an HTTP message,
it will see my custom header of “a-header” as “A-Header” because of
Net::HTTP. I don’t really want Net::HTTP to modify my header contents
(I might want to be able to send “A-HEADER” and not have Net::HTTP
change it to “A-Header”), so that’s why I posted. Your response isn’t
really what I am looking for. Does anyone have an answer for my initial
post? Thanks!
Keith F. wrote:
On Nov 15, 2007 5:36 AM, Edward L. [email protected] wrote:
I am trying to use custom headers, and I am having an issue with how
Net::HTTP handles this. Let’s say I want to add the header “a-header”
to the HTTP message I am sending to a server. When I turn on a TCP
monitor to check on the message, I notice that Net::HTTP changes
“a-header” to “A-Header”. I would like to prevent Net::HTTP from
changing the casing of my header“”""4.2 Message Headers
HTTP header fields, which include general-header (section 4.5),
request-header (section 5.3), response-header (section 6.2), and
entity-header (section 7.1) fields, follow the same generic format as
that given in Section 3.1 of RFC 822 [9]. Each header field consists
of a name followed by a colon (“:”) and the field value. Field names
__are case-insensitive.“”"http://www.ietf.org/rfc/rfc2616.txt
HTH,
Keith
On Nov 15, 2007, at 6:36 AM, Edward L. wrote:
to stop the casing change)? If not, what is the cleanest solution to
modify Net::HTTP for this issue? Thanks!Posted via http://www.ruby-forum.com/.
you can try something like
class CaseSensitiveHeader < ::String
def capitalize() self end
end
add_header CaseSensitiveHeader.new(‘a-header’), value
or
module Net
module HTTPHeader
def capitalize(name) name end
end
end
just took a quick look at the net/http.rb, but one of them will work.