Ruby on rails 错误的状态行:“&书信电报;!DOCTYPE HTML PUBLIC\"-//IETF//DTD HTML 2.0//EN\"&燃气轮机&引用;

Ruby on rails 错误的状态行:“&书信电报;!DOCTYPE HTML PUBLIC\"-//IETF//DTD HTML 2.0//EN\"&燃气轮机&引用;,ruby-on-rails,ruby,xml,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::P

当我发出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)
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
其中you_xml是这样的

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)
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

非常感谢您的帮助。

在尝试通过https访问资源之前,我遇到了类似的错误。您没有提到是否是这种情况,但如果是这样,请在
post
可能修复它之前设置
http.use\u ssl=true

这就是我如何使它工作的

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
            http.use_ssl = true
            http.verify_mode = OpenSSL::SSL::VERIFY_NONE
            response = http.request(request)
            result = Hash.from_xml(response.body)