Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
post_form not posting to full url
Pat Goebel
6/30/2007 5:17:00 AM
I am using Net::HTTP.post_form to post this form information:
{ "form_action" => "pet.do_fight", "mcid" => "9", "level" => "30",
"type" => "fightmonster" }
to this url:
http://neo2.hotornot.com/fac...
?fb_sig_in_iframe=1&fb_sig_time=1183152280.7875&fb_sig_user=502275480&fb_sig_profile_update_time=1182829280&fb_sig_session_key=4ca41050eb103deabc95c2c5-502275480&fb_sig_expires=0&fb_sig_api_key=692cc73d766279a46f0aaac1d104771e&fb_sig_added=1&fb_sig=c9a69599141dd3a1f4b81f46fc52ffb2&cpid=56025...
and while it should be posting to this url when I used a packet sniffer
(because it was not working) it showed me that it was posting only to
this url:
http://neo2.hotornot.com/fac...
it gives me a 404:
<style>
msg404 {
font-family:Arial,sans-serif;
font-size:24px;
text-align:center;
}
</style>
<div class="msg404">Sorry! This page cannot be found</div>
as well as giving me:
#<Net::HTTPNotFound:0x2b65600>
...what am i doing wrong:
-------------------
require 'net/http'
require 'uri'
spooform = { "form_action" => "pet.do_fight", "mcid" => "9", "level" =>
"30", "type" => "fightmonster" }
fightit =
"
http://neo2.hotornot.com/fac...
?fb_sig_in_iframe=1&fb_sig_time=1183152280.7875&fb_sig_user=502275480&fb_sig_profile_update_time=1182829280&fb_sig_session_key=4ca41050eb103deabc95c2c5-502275480&fb_sig_expires=0&fb_sig_api_key=692cc73d766279a46f0aaac1d104771e&fb_sig_added=1&fb_sig=c9a69599141dd3a1f4b81f46fc52ffb2&cpid=56025..."
responce = Net::HTTP.post_form(URI.parse(fightit),spooform)
puts responce
-------------------
--
Posted via
http://www.ruby-...
.
1 Answer
Jano Svitok
6/30/2007 10:48:00 PM
0
On 6/30/07, Pat Goebel <putterson@gmail.com> wrote:
> I am using Net::HTTP.post_form to post this form information:
> { "form_action" => "pet.do_fight", "mcid" => "9", "level" => "30",
> "type" => "fightmonster" }
> to this url:
>
http://neo2.hotornot.com/fac...
?fb_sig_in_iframe=1&fb_sig_time=1183152280.7875&fb_sig_user=502275480&fb_sig_profile_update_time=1182829280&fb_sig_session_key=4ca41050eb103deabc95c2c5-502275480&fb_sig_expires=0&fb_sig_api_key=692cc73d766279a46f0aaac1d104771e&fb_sig_added=1&fb_sig=c9a69599141dd3a1f4b81f46fc52ffb2&cpid=56025...
> and while it should be posting to this url when I used a packet sniffer
> (because it was not working) it showed me that it was posting only to
> this url:
>
http://neo2.hotornot.com/fac...
> it gives me a 404:
> <style>
> .msg404 {
> font-family:Arial,sans-serif;
> font-size:24px;
> text-align:center;
> }
> </style>
> <div class="msg404">Sorry! This page cannot be found</div>
> as well as giving me:
> #<Net::HTTPNotFound:0x2b65600>
> ...what am i doing wrong:
> -------------------
> require 'net/http'
> require 'uri'
> spooform = { "form_action" => "pet.do_fight", "mcid" => "9", "level" =>
> "30", "type" => "fightmonster" }
> fightit =
> "
http://neo2.hotornot.com/fac...
?fb_sig_in_iframe=1&fb_sig_time=1183152280.7875&fb_sig_user=502275480&fb_sig_profile_update_time=1182829280&fb_sig_session_key=4ca41050eb103deabc95c2c5-502275480&fb_sig_expires=0&fb_sig_api_key=692cc73d766279a46f0aaac1d104771e&fb_sig_added=1&fb_sig=c9a69599141dd3a1f4b81f46fc52ffb2&cpid=56025..."
> responce = Net::HTTP.post_form(URI.parse(fightit),spooform)
> puts responce
this source for post_form (copied from ruby-doc.org):
def HTTP.post_form(url, params)
req = Post.new(url.path)
req.form_data = params
req.basic_auth url.user, url.password if url.user
new(url.host, url.port).start {|http|
http.request(req)
}
end
You can see that it doesn't send Uri#query.
Try either joining the GET parameters with POST ones, and send them
all as POST params, or use Http#post and specify the path and query
string.
uri = URI.parse('http://...')
i.e. Http.open(uri.host) do |http|
response = http.post(uri.path + '?' + uri.query, <uri-encoded
spooform data as string>)
end
you'd need to find out how to encode the form data.
Disclaimer: It's 1AM here, I have not tested anything, so take these
as ideas to investigate...
J.
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
post_form not posting to full url
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password