2013-04-15 63 views
2

我使用Net :: HTTP发出HTTP请求。我收到错误“HTTP请求路径为空”,但我强烈地认为它不是。代码如下:为什么我得到Net :: HTTP“请求路径为空”错误?

REQUEST_IP = "localhost" 
REQUEST_PORT = "8081" 
REQUEST_PATH = "myweb/rest" 

def customServiceMailAndMessageRequest user_id, message 

    url = 'http://' + REQUEST_IP + ":" + REQUEST_PORT + "/" + REQUEST_PATH + '/users/' + user_id + '/messages/sendMailAndMessage?message=' + message 
    uri = URI(url) 

    request = Net::HTTP::Get.new(uri.path) 
    request['Content-Type'] = 'application/json' 
    request['Accept'] = 'application/json' 

    response = Net::HTTP.new(uri.host,uri.port) do |http| 
    http.request(request) 
    end 

    puts response 

end 

的错误是:

/usr/lib/ruby/1.8/net/http.rb:1478:in `initialize': HTTP request path is empty (ArgumentError) 
    from /usr/lib/ruby/1.8/net/http.rb:1596:in `initialize' 

可朝向我的错误的人呢?

+0

在将它传递给'Net :: HTTP :: Get.new'之前,尝试'puts uri.path'。我怀疑它是从那里来的,并且在构造'url'变量的过程中,你的路径正在被破坏。 –

回答

11

我收到类似的错误,当我没有包含尾随/。一旦我做到了,一切都很好。

根据您分享的信息,我只能假设您的message变量没有。

相关问题