[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Webrick override HTTPResponse::setup_header

andrey

4/18/2008 10:39:00 AM

Hi, all.

My subj solution:

class MyServlet < HTTPServlet::AbstractServlet
def do_GET(req, res)
class <<res
def setup_header()
... my code ...
end
end
....
end
....
end

I think my solution is't good and is't true ruby way.
Another solution?
5 Answers

Eric Hodel

4/18/2008 8:30:00 PM

0

On Apr 18, 2008, at 03:40 AM, andrey wrote:
> My subj solution:
>
> class MyServlet < HTTPServlet::AbstractServlet
> def do_GET(req, res)
> class <<res
> def setup_header()
> ... my code ...
> end
> end
> ....
> end
> ....
> end
>
> I think my solution is't good and is't true ruby way.
> Another solution?

What are you trying to accomplish with this code?

Daniel Finnie

4/19/2008 2:10:00 AM

0

Hi,

As Eric said, it's not obvious what end result you are expecting but
it appears you want to change the headers of the response. If so, you
can do something like this:

class MyServlet < HTTPServlet::AbstractServlet
def do_Get(req, res)
res["header_name"] = "header_value"
...
end
end

Webrick is not very well documented but the method names and their
source code are available here: http://ruby-doc.o...

Dan

On Fri, Apr 18, 2008 at 6:40 AM, andrey <Andrey.D.Nikitin@gmail.com> wrote:
> Hi, all.
>
> My subj solution:
>
> class MyServlet < HTTPServlet::AbstractServlet
> def do_GET(req, res)
> class <<res
> def setup_header()
> ... my code ...
> end
> end
> ....
> end
> ....
> end
>
> I think my solution is't good and is't true ruby way.
> Another solution?
>
>

Daniel Finnie

4/19/2008 2:11:00 PM

0

SGksCgpHZW5lcmFsbHkgeW91IHNob3VsZCByZXBseSB0byB0aGUgcnVieS10YWxrIGxpc3QgaW5z
dGVhZCBvZiBvbmUKcGFydGljdWxhciBwZXJzb24gYXMgc29tZW9uZSBvbiB0aGUgbGlzdCBtaWdo
dCBoYXZlIG1vcmUga25vd2xlZGdlIG9mCnRoaXMgc3ViamVjdC4KCkFyZSB5b3Ugc3VyZSB0aGF0
IGlzIHRoZSBiZWhhdmlvciBvZiByZXNbImhlYWRlciJdPyAgVGhlIHNvdXJjZSBjb2RlCmRvZXMg
bm90IGxvb2sgbGlrZSBpdCBkaWZmZXJlbnRpYXRlcyBiZXR3ZWVuIHByZS1leGlzdGluZyBmaWVs
ZHMgYW5kCm5ldyBmaWVsZHMuICBJZiB5b3Ugd2FudCB0byBjaGFuZ2UgdGhlIGJvZHkgb2YgdGhl
IHJlc3BvbnNlLCB1c2UKcmVzLmJvZHkgPSAiLi4uIgoKRGFuCgoyMDA4LzQvMTkgYW5kcmV5IDxB
bmRyZXkuRC5OaWtpdGluQGdtYWlsLmNvbT46Cj4gT24gMTkgwdDSLCAwNjoxMCwgRGFuaWVsIEZp
bm5pZSA8ZC4uLkBkYW5maW5uaWUuY29tPiB3cm90ZToKPgo+ID4gICAgIHJlc1siaGVhZGVyX25h
bWUiXSA9ICJoZWFkZXJfdmFsdWUiCj4KPgo+Cj4gVGhhbmtzLgo+ICBGb3IgaW5jbHVzaW9uIGlu
IHRoZSBhbnN3ZXIgb2YgYSBzZXJ2ZXIgb2YgX2FkZGl0aW9uYWxfIGZpZWxkcyBpdCBpcwo+ICBj
b252ZW5pZW50IHRvIHVzZSByZXMgWyJoZWFkZXJfbmFtZSJdLgo+ICBCdXQgSSBuZWVkIHRvIGNo
YW5nZSB0aGUgYW5zd2VyIG9mIGEgc2VydmVyIF9jb21wbGV0ZWx5Xy4KPgo=

andrey

4/19/2008 3:06:00 PM

0

On 19 ???, 18:44, Daniel Finnie <d...@danfinnie.com> wrote:
> To clear out all of the existing headers you can use
> res.instance_variable_set("@header", {"header_name" => "header_value",
> "other_header_name" => "other_header_value"})

Yes, but after exiting do_Get() Webrick add self headers:

def do_GET(req, res)
...
res.instance_variable_set("@header",
{"header_name" => "header_value",
"other_header_name" =>
"other_header_value"})
...
end

% nc localhost 60001
HEAD /mjpeg.cgi HTTP/1.0

HTTP/1.1 200 OK
Connection: close
Date: Sat, 19 Apr 2008 14:52:47 GMT
Content-Type:text/html
Server: WEBrick/1.3.1 (Ruby/1.8.5/2006-08-25)
Other_header_name: other_header_value
Header_name: header_value

Simon Krahnke

4/23/2008 12:42:00 AM

0

* andrey <Andrey.D.Nikitin@gmail.com> (2008-04-19) schrieb:

> On 19 апÑ?, 18:44, Daniel Finnie <d...@danfinnie.com> wrote:
>> To clear out all of the existing headers you can use
>> res.instance_variable_set("@header", {"header_name" => "header_value",
>> "other_header_name" => "other_header_value"})
>
> Yes, but after exiting do_Get() Webrick add self headers:

If you want to change the Content-Type, use

req['Content-Type'] = 'application/x-my-world'

mfg, simon .... l