Ruby Net::HTTP get 方法

liker · 2013年10月29日 · 最后由 liker 回复于 2013年10月30日 · 4210 次阅读

在irb中能得到uuid

irb(main):001:0> require 'net/http'
=> true
irb(main):004:0> uri = URI('http://192.168.1.239:3000/uuid_create')
=> #<URI::HTTP:0x000000024c7eb0 URL:http://192.168.1.239:3000/uuid_create>
irb(main):005:0> Net::HTTP.get(uri)
=> "{\"uuid\":\"3363c9b3-cf6e-445d-a95c-0e4034768dcd\"}"

在action中怎么就得不到呢?

require 'net/http'
class UuidCreateController < ApplicationController
    def uuid_test
    uri = URI("http://192.168.1.239:3000/uuid_create")
    #uri = URI('http://www.baidu.com')
    response = Net::HTTP.get(uri)
    puts response
  end
end
共收到 7 条回复

输出是什么?

#1楼 @towonzhou 一直超时。报错超时。百度uri能运行。

项目运行uri为(http://192.168.1.239:3000/uuid_test)就不能运行。 换成另一个项目掉用这个接口时 就可以(http://192.168.1.239:3001/uuid) 本项目应该怎么调用 本项目提供的对外接口?

开发模式用的 webrick 只能接受一个 request,换 passenger,unicorn,thin 看看。

#3楼 @liker 你是自己调用自己? 那肯定会超时啊,直接调用方法不就可以了,何必要用http呢,
你的项目接受一个request后,会等到此request完成后才执行下一个request, 你在第一个request里面又request自己,就会一直等,然后就超时了...

果然自己请求自己。。。重入了。。。。。

#5楼 @towonzhou 恩 懂了 谢谢!

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册