是否可以使用基本HTTP请求使用XML RPC服务?

时间:2015-12-07 10:00:57

标签: c# xml web-services

我的任务是使用XML RPC API,我对它非常不熟悉。我浏览了几页描述它,我已经看到那里也有一些库。

然而,让我觉得它归结为发布一个类似于REST的HTTP请求,除了在主体中使用XML而不是JSON。

我想构建一个类似于下面的HTTP请求:

char *full_path = "/usr/bin/wc";

我是否在正确的轨道上?周围丰富的图书馆让我觉得它可能比我想象的更复杂。理想情况下,我想自己在.NET中编写一个快速客户端。

1 个答案:

答案 0 :(得分:1)

    static void Main(string[] args)
    {
          HttpWebRequest request = BuildWebRequest();

          var response = request.GetResponse() as HttpWebResponse;
          var responseContent = new StreamReader(response.GetResponseStream()).ReadToEnd();

    }

    private static HttpWebRequest BuildWebRequest()
    {
        var request = WebRequest.Create(Url) as HttpWebRequest;

        request.Method = "POST";
        request.ContentType = "application/xml";
        request.Timeout = 40000;
        request.ServicePoint.Expect100Continue = true;

        string body = @"<?xml version="1.0"?>
<methodCall>
  <methodName>examples.getStateName</methodName>
  <params>
    <param>
        <value><i4>40</i4></value>
    </param>
  </params>
</methodCall>";

        byte[] bytes = Encoding.Default.GetBytes(body);

        using (var requestStream = request.GetRequestStream())
        {
            requestStream.Write(bytes, 0, bytes.Length);
        }

        return request;
    }

是的,这不是问题,这是一个如何做的例子。在字符串正文中,您必须只编写xml,并且应该输入正确的内容类型。如果服务提供商有类似特定标题的要求,则应添加它们。