[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

http.post dropping trailing '}'

Wilson Chen

3/27/2007 11:04:00 PM

I am making a call through http.post in Ruby 1.8.5.

uri = ...
data = '{}'
headers = ...
http.post(uri, data, headers)

Everything seems to work except that the trailing '}' in data is not
getting posted, as determined by the network analyzer WireShark. My
entire posted data is just '{'. Is there some sort of sanitization or
choping that I am unaware of?

Thanks.

--
Posted via http://www.ruby-....

2 Answers

Phillip Gawlowski

3/27/2007 11:28:00 PM

0

Wilson Chen wrote:
> I am making a call through http.post in Ruby 1.8.5.
>
> uri = ...
> data = '{}'
> headers = ...
> http.post(uri, data, headers)
>
> Everything seems to work except that the trailing '}' in data is not
> getting posted, as determined by the network analyzer WireShark. My
> entire posted data is just '{'. Is there some sort of sanitization or
> choping that I am unaware of?


you could either try String#dump to automagically create escape
characters, or escape the {} yourself with a backslash.

I have no clue, though, if that is feasible in regard to the receiving end.

--
Phillip "CynicalRyan" Gawlowski

Rule of Open-Source Programming #11:

When a developer says he will work on something, he or she means
"maybe".

Brian Candler

3/28/2007 7:34:00 PM

0

On Wed, Mar 28, 2007 at 08:04:00AM +0900, Wilson Chen wrote:
> I am making a call through http.post in Ruby 1.8.5.
>
> uri = ...
> data = '{}'
> headers = ...
> http.post(uri, data, headers)
>
> Everything seems to work except that the trailing '}' in data is not
> getting posted, as determined by the network analyzer WireShark. My
> entire posted data is just '{'. Is there some sort of sanitization or
> choping that I am unaware of?

Attached is a test case which proves everything is working OK, for me
anyway:

$ ruby posttest.rb
Listening on port 38449
<< request >>
POST /foo/bar HTTP/1.1
Accept: */*
Content-Type: text/plain
Content-Length: 2
Host: 127.0.0.1:38449

<< end headers >>
"{}"
Response: #<Net::HTTPServerError 500 Go away readbody=true>

This is ruby 1.8.4 (2005-12-24) [i486-linux] under Ubuntu 6.06

So I think you're probably misinterpreting your wireshark output, in which
case maybe you should post it. Better still, post tcpdump -s0 -X -n output.

Regards,

Brian.