Net::HTTP header issue

Discussion in 'Ruby' started by Edward Liu, Nov 15, 2007.

  1. Edward Liu

    Edward Liu Guest

    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!
    --
    Posted via http://www.ruby-forum.com/.
    Edward Liu, Nov 15, 2007
    #1
    1. Advertising

  2. On Nov 15, 2007 5:36 AM, Edward Liu <> 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
    Keith Fahlgren, Nov 15, 2007
    #2
    1. Advertising

  3. Edward Liu

    Edward Liu Guest

    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 Fahlgren wrote:
    > On Nov 15, 2007 5:36 AM, Edward Liu <> 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


    --
    Posted via http://www.ruby-forum.com/.
    Edward Liu, Nov 15, 2007
    #3
  4. Edward Liu

    ara.t.howard Guest

    On Nov 15, 2007, at 6:36 AM, Edward Liu 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, 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!
    > --
    > 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.

    a @ http://codeforpeople.com/
    --
    we can deny everything, except that we have the possibility of being
    better. simply reflect on that.
    h.h. the 14th dalai lama
    ara.t.howard, Nov 16, 2007
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Timo
    Replies:
    2
    Views:
    2,822
  2. Replies:
    7
    Views:
    10,373
    erics44
    Jan 8, 2010
  3. Vivek Mehta
    Replies:
    3
    Views:
    8,666
    Vivek Mehta
    Aug 12, 2004
  4. mlt
    Replies:
    2
    Views:
    820
    Jean-Marc Bourguet
    Jan 31, 2009
  5. Matt Greer
    Replies:
    2
    Views:
    255
    chriso
    Feb 6, 2004
Loading...

Share This Page