首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails中的C# WebClient.UploadData

Rails中的C# WebClient.UploadData
EN

Stack Overflow用户
提问于 2021-02-08 14:50:41
回答 1查看 39关注 0票数 1

我有一个c#方法,我正在尝试将它转换为rails。我用的是unirest,但我认为有些东西不能正常工作。这是我的C#方法:

代码语言:javascript
复制
private static string HTTPPoster(string url, string prmSendData)
        {
            try
            {
                WebClient wUpload = new WebClient();
                wUpload.Proxy = null;
                Byte[] bPostArray = Encoding.UTF8.GetBytes(prmSendData);
                Byte[] bResponse = wUpload.UploadData(url, "POST", bPostArray);
                Char[] sReturnChars = Encoding.UTF8.GetChars(bResponse);
                string sWebPage = new string(sReturnChars);
                return sWebPage;
            }
            catch
            {
                return "-1";
            }
        }

这就是我到目前为止在rails中使用unirest所做的尝试:

代码语言:javascript
复制
def HTTPPoster(url)

    xml = "My XML Goes Here"

    byte_array = xml.bytes

    headers = {}
    headers['Content-Type'] =  "application/json"
    headers['Accept'] = "application/json"

    response = Unirest.post(url,
      headers: headers,
      parameters: {
        body: byte_array
      })

    puts "response #{response.body}"

    if ![200,201].include?(response.code)
      raise "Mblox Error: #{response.code}, #{response.body}"
    end
  end

如果你也知道其他库可以实现我所需要的,请告诉我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-11 08:55:04

我使用Faraday并将数据发送为xml,而不是字节数组。现在我正在实现我想要的欲望。

代码语言:javascript
复制
response = Faraday.post(url) do |req|
      req.headers['Content-Type'] =  "application/xml"
      req.headers['Accept'] =  "*/*"
      req.headers['Accept-Encoding'] =  "gzip, deflate, br"
      req.body = xml
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66103867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档