这是一个奇怪的,任何人都可以在家重新录制(我认为) - 我正在尝试编写一个简单的服务,以在托管在EC2上的服务上的Twitter上运行搜索。当使用ruby运行时,Twitter会以100%的时间返回错误,但不会以其他语言显示,这表明它不是IP阻塞问题。这里是一个例子:Twitter搜索api仅在Ruby中被亚马逊EC2封锁,不卷曲......这是Net :: HTTP吗?
[email protected]:~$ irb
irb(main):001:0> require 'net/http'
=> true
irb(main):002:0> res = Net::HTTP.post_form(URI.parse('http://search.twitter.com/search.json'), {'q' => 'twitter'})
=> #<Net::HTTPBadRequest 400 Bad Request readbody=true>
irb(main):003:0> exit
[email protected]:~$ curl http://search.twitter.com/search.json?q=twitter
{"results":[{"text":""Social Media and SE(Search Engine) come side by side to help promote your business and bran...<snip/>
正如你所看到的,CURL的工作原理,irb没有。当我在IRB在我的本地的Windows中运行,成功:
$ irb
irb(main):001:0> require 'net/http'
=> true
irb(main):002:0> res = Net::HTTP.post_form(URI.parse('http://search.twitter.com/search.json'), {'q' => 'twitter'})
=> #<Net::HTTPOK 200 OK readbody=true>
这是令人困惑......如果有某种在网络核心的bug :: HTTP,我想它会显示两个窗口上和Linux,如果我被我的IP阻止,那么curl也不应该工作。我用新鲜的IP addy在一个新的亚马逊实例上尝试了这一点。
任何人都应该能够摄制这个“因为我使用ec2onrails AMI:
ec2-run-instances ami-5394733a -k testkeypair
只是SSH方式后并运行高于简单的线条。任何人有想法发生了什么?
谢谢!
对,这是我考虑的第一件事情,但如果我打了极限,那么发送随即卷曲的请求也应报告故障。 我正在使用与静态IP关联的实例,并且我检查并请求确实来自分配的静态IP。响应机构增加了很少的信息: “<!DOCTYPE HTML PUBLIC \ “ - // IETF // DTD HTML 2.0 // EN \”> \ n
\ n坏请求
\ n您的浏览器发送一个请求这台服务器无法理解。
\ n“ – esilver 2009-06-20 16:45:41\ n
而且php也会出现400错误,如果这是一个简单的被阻止的IP问题,这将是有意义的,但事实仍然是从命令行卷曲工作...我想知道如果curl添加了一些头文件(一个用户代理,也许??),叽叽喳喳喜欢看到......我即将写代码手动调用curl从我的ruby脚本 – esilver 2009-06-20 18:00:10