ruby-on-rails - 错误的状态行 : "<!DOCTYPE HTML PUBLIC\"-//IETF//DTD HTML 2. 0//EN\">"

标签 ruby-on-rails ruby xml

当我发出 http 请求时,我遇到了一个奇怪的错误。

请求码是这样的;

purchase_xml = Transaction.yo_xml(api_username,api_password,@total, account, merchant_reference)
            uri = URI.parse(url)
            http = Net::HTTP.new(uri.host, uri.port)
            request = Net::HTTP::Post.new(uri.request_uri)
            request.body = purchase_xml
            response = http.request(request)
            result = Hash.from_xml(response.body)

yo_xml 看起来像这样;

def self.yo_xml(api_username, api_password,amount, account, transaction_id)
        xml = "<?xml version=1.0 encoding=UTF-8?><AutoCreate><Request><APIUsername>#{api_username}</APIUsername>
                <APIPassword>#{api_password}</APIPassword><Method>acdepositfunds</Method><Amount>#{amount}</Amount>
                <Account>#{account}</Account><Narrative>Purchase of SMS</Narrative><InternalReference>#{transaction_id}</InternalReference>
                <ExternalReference>#{transaction_id}</ExternalReference><ProviderReferenceText>Thank you for using Skyline SMS</ProviderReferenceText>
                </Request></AutoCreate>"
        return xml
    end

我收到这个错误;

Net::HTTPBadResponse
wrong status line: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">"

提出这条线

response = http.request(request)

感谢任何帮助。

最佳答案

在尝试通过 https 访问资源之前,我遇到了与此类似的错误。你没有提到是否是这种情况,但如果是这样的话,在 post 之前设置 http.use_ssl = true 可能会解决它。

关于ruby-on-rails - 错误的状态行 : "&lt;!DOCTYPE HTML PUBLIC\"-//IETF//DTD HTML 2. 0//EN\">",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19885043/

相关文章:

ruby-on-rails - 需要一个值先降下来其他升序

ruby-on-rails - 如何向现有的通知负载添加属性?

ruby-on-rails - 如何通过与Active Record关联来查找has_many中缺少关联记录的记录?

ruby-on-rails - Rails 回形针图像 URL 上传不起作用

ruby - 使用 Sequel 设置主键初始值

java - 无法将字节转换为 KB

ruby-on-rails - 我可以让 validates_uniqueness_of 在 rails 中默默地失败吗?

Ruby:如何替换文件中的文本?

c# - 如何在内存中创建 XML 文档并从中获取字符串

xml - 通过 Web 服务将文件作为字节数组发送时会产生多少额外开销?