# Reading http request as IO in rails

**URL:** <https://www.ruby-forum.com/t/reading-http-request-as-io-in-rails/129287>\
**Category:** Rails\
**Created:** [February 16, 2008, 4:42am UTC](https://www.ruby-forum.com/t/reading-http-request-as-io-in-rails/129287 "2008-02-16T04:42:16Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![mbg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/7ab992/32.png) [@mbg](https://www.ruby-forum.com/u/mbg)\
**Post date:** [February 16, 2008, 4:42am UTC](https://www.ruby-forum.com/t/reading-http-request-as-io-in-rails/129287/1 "2008-02-16T04:42:16Z")

</div>

Hi,  
Here’s what i’m trying to do my mobile phone app ( j2me) tries to  
connect to the my rails application.  
the j2me app opens a java.io.OutputStream here’s the snippet  
hc = (HttpConnection) Connector.open(UPDATE\_URL,  
Connector.READ\_WRITE);  
hc.setRequestMethod(HttpConnection.POST);  
hc.setRequestProperty(“If-Modified-Since”, “29 Oct  
1999  
19:43:31 GMT”);  
hc.setRequestProperty(“User-Agent”, “Profile/MIDP-2.0  
Configuration/CLDC-1.2”);  
hc.setRequestProperty(“Content-Language”, “en-US”);  
out = hc.openOutputStream();

j2me app then just writes data to the output stream(pretty basic  
here). so far so good. not a problem here.  
And on my rails controller i do the following,

class MainController \< ApplicationController  
def read\_data  
url = request.env[“REQUEST\_URI”]  
method = request.env[“REQUEST\_METHOD”]  
data = request.env[“RAW\_POST\_DATA”]

newf = File.open(“MY\_DATA”, “wb”)  
str = request.body.read  
newf.write(str)  
newf.close  
render :text =\> “Hello Load #{url}”  
end  
end

the problem is the same j2me app works(only changes the url) if i have  
a servlet receiving the data, i do request.getInputStream on a servlet  
and everything works.  
But on rails i get ioexception under j2me app saying couldn’t write to  
socket.

Also is request.body.read the correct way to do it. ?  
Is this possible in rails or am i making the wrong assumptions here ?  
what am i doing wrong, or rather how is it done.

I appreciate any insights that you may have.  
mb

---

<div class="post-metadata">

**Author:** ![mbg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/7ab992/32.png) [@mbg](https://www.ruby-forum.com/u/mbg)\
**Post date:** [February 17, 2008, 5:35pm UTC](https://www.ruby-forum.com/t/reading-http-request-as-io-in-rails/129287/2 "2008-02-17T17:35:01Z")

</div>

So i should take it that this is not possible in rails ?

---

<div class="post-metadata">

**Author:** ![mbg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/7ab992/32.png) [@mbg](https://www.ruby-forum.com/u/mbg)\
**Post date:** [May 16, 2008, 5:16pm UTC](https://www.ruby-forum.com/t/reading-http-request-as-io-in-rails/129287/3 "2008-05-16T17:16:07Z")

</div>

Try request.raw\_post method.

---

<div class="post-metadata">

**Author:** ![mbg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/7ab992/32.png) [@mbg](https://www.ruby-forum.com/u/mbg)\
**Post date:** [February 20, 2009, 3:48pm UTC](https://www.ruby-forum.com/t/reading-http-request-as-io-in-rails/129287/4 "2009-02-20T15:48:49Z")

</div>

I get the same problem, until now, I can’t get solution.
