我的任务是使用XML RPC API,我对它非常不熟悉。我浏览了几页描述它,我已经看到那里也有一些库。
然而,让我觉得它归结为发布一个类似于REST的HTTP请求,除了在主体中使用XML而不是JSON。
我想构建一个类似于下面的HTTP请求:
char *full_path = "/usr/bin/wc";
我是否在正确的轨道上?周围丰富的图书馆让我觉得它可能比我想象的更复杂。理想情况下,我想自己在.NET中编写一个快速客户端。
答案 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,并且应该输入正确的内容类型。如果服务提供商有类似特定标题的要求,则应添加它们。