ruby-on-rails – RedmineRails – 发送POST数据时未定义的方法

ruby-on-rails – RedmineRails – 发送POST数据时未定义的方法,第1张

概述Redmine允许用户手动将文件添加到文档中,我的目标是创建一个自动执行此 *** 作的方法. 我在使用Wireshark嗅探时手动添加了一个文件以获取我想在我的方法中重新创建的POST请求以帮助我一点点(我无法发布一些屏幕截图(如果需要),我的声誉太低了). Redmine官方网站提供了如何在此处附加文件的信息:http://www.redmine.org/projects/redmine/wiki/R Redmine允许用户手动将文件添加到文档中,我的目标是创建一个自动执行此 *** 作的方法.

我在使用Wireshark嗅探时手动添加了一个文件以获取我想在我的方法中重新创建的POST请求以帮助我一点点(我无法发布一些屏幕截图(如果需要),我的声誉太低了).

Redmine官方网站提供了如何在此处附加文件的信息:http://www.redmine.org/projects/redmine/wiki/Rest_api#Attaching-files

因此,经过几个小时浏览Web和特殊的StackOverflow和here,我终于写了一个方法:

require 'net/http'require 'uri'uri = URI.parse("/uploads.Js")http = Net::http.new(uri.host,uri.port)request = Net::http::Post.new(uri.path,initheader = {'Content-Type' => 'application/octet-stream'})request.body = file.new("/home/testfile.txt",'rb')@response = http.request(request)

正如Redmine网站上所解释的,我在标题中指定了内容类型,并在body请求中添加了该文件.

现在我收到以下错误:

NoMethodError (undefined method `+' for nil:NilClass):/usr/local/lib/ruby/1.9.1/net/http.rb:1404:in `addr_port'/usr/local/lib/ruby/1.9.1/net/http.rb:1339:in `begin_transport'/usr/local/lib/ruby/1.9.1/net/http.rb:1315:in `transport_request'/usr/local/lib/ruby/1.9.1/net/http.rb:1293:in `request'rest-clIEnt (1.6.7) lib/restclIEnt/net_http_ext.rb:51:in `request'/usr/local/lib/ruby/1.9.1/net/http.rb:1286:in `block in request'/usr/local/lib/ruby/1.9.1/net/http.rb:745:in `start'/usr/local/lib/ruby/1.9.1/net/http.rb:1284:in `request'rest-clIEnt (1.6.7) lib/restclIEnt/net_http_ext.rb:51:in `request'plugins/redmine_reddrop/app/controllers/projectusers_controller.rb:360:in `addfile'

编辑:

我用这样的绝对URL更新了我的uri:

uri = URI.parse("http://<server_IP_address>:3000/uploads.Js")

现在我收到以下错误:

NoMethodError (undefined method `bytesize' for #<file:/home/testfile.txt>):

您是否在我的方法中看到任何错误,或者您是否知道此错误来自何处?

注意:我使用的是rails 3.2.16和Ruby 1.9.3-p392

解决方法 据我所知,你不能使用相对URI,所以你的行

uri = URI.parse('/uploads.Js')

无法正确处理.
尝试使用绝对URL!它可能会奏效.

我相信而不是

request.body = file.new(...)

你应该用

request.body = file.read(...)
总结

以上是内存溢出为你收集整理的ruby-on-rails – Redmine / Rails – 发送POST数据时未定义的方法全部内容,希望文章能够帮你解决ruby-on-rails – Redmine / Rails – 发送POST数据时未定义的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1269826.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存