[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

400 "Bad Request"

Arun Kumar

3/26/2009 3:22:00 PM

Hi,
I'm developing a program to fetch the html contents of a site using
'net/http'. Everyting works fine except for http://www.y.... When
i pass that url an error like this is found

/usr/lib/ruby/1.8/net/http.rb:2097:in `error!': 400 "Bad Request"
(Net::HTTPServerException)

I think it is because i'm not using any user agent. Can any body please
tell me any auggestion. I'll be really greatful. This is my code
snippet.

response = Net::HTTP.get_response(URI.parse("http://www.y..."))
case response
when Net::HTTPSuccess then response
when Net::HTTPRedirection then response =
Net::HTTP.get(URI.parse(response['location']))
else
response.error!
end

Thanks

regards
Arun Kumar
--
Posted via http://www.ruby-....

4 Answers

Luis Parravicini

3/26/2009 4:06:00 PM

0

Hi

On Thu, Mar 26, 2009 at 12:21 PM, Arun Kumar
<arunkumar@innovaturelabs.com> wrote:
> Hi,
> I'm developing a program to fetch the html contents of a site using
> 'net/http'. Everyting works fine except for http://www.y.... When
> i pass that url an error like this is found
>
> /usr/lib/ruby/1.8/net/http.rb:2097:in `error!': 400 "Bad Request"
> (Net::HTTPServerException)
>
> I think it is because i'm not using any user agent. Can any body please
> tell me any auggestion. I'll be really greatful. This is my code
> snippet.


You can try getting the page with Mechanize [1].

irb -rubygems -rmechanize
irb(main):001:0> agent=WWW::Mechanize.new
irb(main):002:0> agent.get('http://www.y...').code
=> "200"

Anyway, it seems it's as you said, without a User-Agent, youtube returns a 400:
irb(main):003:0> agent.user_agent=nil
=> nil
irb(main):004:0> agent.get('http://www.y...').code
WWW::Mechanize::ResponseCodeError: 400 => Net::HTTPBadRequest
from /usr/lib/ruby/gems/1.8/gems/mechanize-0.9.2/lib/www/mechanize.rb:229:in
`get'
from (irb):4
irb(main):005:0>


[1] http://mechanize.ruby...

--
Luis Parravicini
http://ktulu.co...

Coey Minear

3/26/2009 4:28:00 PM

0


Arun Kumar writes:
> Hi,
> I'm developing a program to fetch the html contents of a site using
> 'net/http'. Everyting works fine except for http://www.y.... When
> i pass that url an error like this is found
>
> /usr/lib/ruby/1.8/net/http.rb:2097:in `error!': 400 "Bad Request"
> (Net::HTTPServerException)
>
> I think it is because i'm not using any user agent. Can any body please
> tell me any auggestion. I'll be really greatful. This is my code
> snippet.
>
> response = Net::HTTP.get_response(URI.parse("http://www.y..."))
> case response
> when Net::HTTPSuccess then response
> when Net::HTTPRedirection then response =
> Net::HTTP.get(URI.parse(response['location']))
> else
> response.error!
> end
>
> Thanks
>
> regards
> Arun Kumar
> --
> Posted via http://www.ruby-....
>

From a quick look at the Net::HTTP RDoc, it would look like your best
option would be to use the public instance 'get' method.

Here is a suggested rework of your code snippet:

Net::HTTP.start('www.youtube.com', 80) {|http|
response = http.get('/', {'User-Agent'=>'ruby/net::http'})
case response
when Net::HTTPSuccess then response
when Net::HTTPRedirection then response = Net::HTTP.get(URI.parse(response['location']))
else
response.error!
end
}

Of course, this quick snippet does not account for when you get a
Net::HTTPRedirection and the redirected host is 'www.youtube.com',
again. (Then again, your original code didn't error check the
redirection response either.) So this isn't a complete solution, but
it will at least show you how to send the "User-Agent" header; I used
a variation of this code and was able to get content from
www.youtube.com.

Coey


John Tordillo

5/1/2010 4:55:00 PM

0


>
> Se daría la mejor cosecha de soja en muchos años y ello eleva la expectativa
> de movimiento de dinero con respecto a la balanza comercial.
>
> El problema es que no deberíamos estar exportando soja sino productos con
> otro valor agregado.
>
> El que se pudrió sin darse cuenta son vos, Vizcorcho.
>

No se pudriò . Se intoxicò , seguramente con soja transgènica . Pero
es entendible que se lo note feliz de poner esas cosas acà . Por lo
que se juega con esto de boom sojero , que no solamente es un
espejismo de consumo para uso polìtico . Estàn en juego nuestros
amigos del norte , lògico . Monsanto es la empresa norteamericana
que hace los transgénicos, y hay que entender que tener 16 millones de
hectáreas de soja transgénica es un peligro, porque esta soja fue
manipulada para realizar fumigaciones de glifosato, y muchos
científicos afirman que eso da cáncer.
El glifosato queda en el agua y en el aire y eso en poco tiempo va a
generar problemas de salud muy grande . La soja transgénica , cuya
explotaciòn se està discutiendo mucho en Chile , entrò al país con
Menem . Había que salir de una crisis económica con la soja que tenía
buen precio internacional.Y ahì empezò la joda .
las fumigaciones con agrotóxicos que demanda este tipo de plantaciones
está derribando las producciones de los pequeños productores que no
pueden seguir con las plantaciones de alimentos básicos como las
verduras o el arroz, etc.; hasta los tambos están desapareciendo en la
zona de La Pampa, entonces esta disminución del agro también provoca
un atentado contra la soberanía alimentaria del país.
Tener el 50% de la superficie plantada con soja transgénica es un
suicidio planificado , para los argentinos , pero gran negocio para
los pools de soja y Monsanto que ya se cuente con 16 millones de Hs.
plantadas con soja trans.Existe una presión desmedida por comprar y
expulsar a pequeños productores, campesinos y pueblos originarios, a
decir del Grupo de Reflexión Rural (GRR) de Argentina (Censos 1988 y
2002). Además, se ha producido la desaparición de más de 160.000
productores.
En el Paraguay, se ha llegado a una triple pérdida de soberanía
nacional: depende de las exportaciones de un solo producto (soya)
cuyas semillas serán proveídas por una sola empresa (MONSANTO); pierde
soberanía territorial, ya que grandes extensiones de tierra son
adquiridas por extranjeros, en particular brasileños.
Es entendible que ciertos personajes lùcidos y luchadores incansables
por la justicia social festejen todo esto .


J.T.

Viejo Vizcacha

5/1/2010 5:13:00 PM

0

On May 1, 12:54 pm, John Tordillo <domenico_ammazzac...@yahoo.it>
wrote:
> > Se daría la mejor cosecha de soja en muchos años y ello eleva la expectativa
> > de movimiento de dinero con respecto a la balanza comercial.
>
> > El problema es que no deberíamos estar exportando soja sino productos con
> > otro valor agregado.
>
> > El que se pudrió sin darse cuenta son vos, Vizcorcho.
>
> No se pudriò . Se intoxicò , seguramente con soja transgènica . Pero
> es entendible que se lo note feliz de poner esas cosas acà . Por lo
> que se juega con esto de boom sojero , que no solamente es un
> espejismo de consumo para uso polìtico . Estàn en juego nuestros
> amigos del norte , lògico .   Monsanto es la empresa norteamericana
> que hace los transgénicos, y hay que entender que tener 16 millones de
> hectáreas de soja transgénica es un peligro, porque esta soja fue
> manipulada para realizar fumigaciones de glifosato, y muchos
> científicos afirman que eso da cáncer.
> El glifosato queda en el agua y en el aire y eso en poco tiempo va a
> generar problemas de salud muy grande . La soja transgénica , cuya
> explotaciòn se està discutiendo mucho en Chile , entrò al país con
> Menem . Había que salir de una crisis económica con la soja que tenía
> buen precio internacional.Y ahì empezò la joda .
> las fumigaciones con agrotóxicos que demanda este tipo de plantaciones
> está derribando las producciones de los pequeños productores que no
> pueden seguir con las plantaciones de alimentos básicos como las
> verduras o el arroz, etc.; hasta los tambos están desapareciendo en la
> zona de La Pampa, entonces esta disminución del agro también provoca
> un atentado contra la soberanía alimentaria del país.
> Tener el 50% de la superficie plantada con soja transgénica es un
> suicidio planificado , para los argentinos , pero gran negocio para
> los pools de soja y Monsanto que ya se cuente con 16 millones de Hs.
> plantadas con soja trans.Existe una presión desmedida por comprar y
> expulsar a pequeños productores, campesinos y pueblos originarios, a
> decir del Grupo de Reflexión Rural (GRR) de Argentina (Censos 1988 y
> 2002). Además, se ha producido la desaparición de más de 160.000
> productores.
>  En el Paraguay, se ha llegado a una triple pérdida de soberanía
> nacional: depende de las exportaciones de un solo producto (soya)
> cuyas semillas serán proveídas por una sola empresa (MONSANTO); pierde
> soberanía territorial, ya que grandes extensiones de tierra son
> adquiridas por extranjeros, en particular brasileños.
> Es entendible que ciertos personajes lùcidos y luchadores incansables
> por la justicia social festejen todo esto .
>
> J.T.


Veo que sos un experto en el uso de la falacia de "hombre de paja".
¿Hay premios "Martín Fiero" al que usa mejor una falacia en un
argumento lacrimógeno y plañidero? Si los hay, ya te veo con la
estatuilla.

A continuación lo que escribí en esta misma trama una hora antes que
volcaras tu veneno aquí:

"Que no deberíamos estar exportando soja es muy cierto. Pero, cuando
el gobierno se plantea poner límites a las exportaciones de productos
no elaborados, "los productores" se alzan como leche hervida cortando
calles y carreteras, y la "ciudadanía" hace preregrinación a la feria
de la Sociedad Rural, para expresar su solidaridad con los
terratenientes. "

Pero tu consigna parece ser: "nunca dejemos que la verdad sea un
obstáculo para un argumento falaz que nos favorece."

VV