C# 使用restsharp向rest服务发送邮件
好的,我假设这是一个简单的问题,但是我在任何地方都找不到我的答案。。。我有一个客户端需要通过.net查询RESTAPI。他给我发送了api的url和数据样本。这是他寄来的:C# 使用restsharp向rest服务发送邮件,c#,rest,C#,Rest,好的,我假设这是一个简单的问题,但是我在任何地方都找不到我的答案。。。我有一个客户端需要通过.net查询RESTAPI。他给我发送了api的url和数据样本。这是他寄来的: <?xml version="1.0"?> <root> <request> <APIClientID>0</APIClientID > <Version>0</Version> <APIPassword>password<
<?xml version="1.0"?>
<root>
<request>
<APIClientID>0</APIClientID >
<Version>0</Version>
<APIPassword>password</APIPassword >
<Function>functionName</Function >
<Params>
<UserId>(current-datetime)</UserId >
<page>example.aspx</page>
<application>appName</application>
<function>functionName</function>
</Params>
</request >
</root >
任何关于我哪里出了问题的想法都会非常感激!我猜有一些关于hte xml的东西我没有正确地转换为restsharp调用,但我现在迷失了方向。。。谢谢 如果帖子正文需要是XML文档,请使用AddBody()。它默认将传递给它的对象序列化为XML。您可以使用与您尝试生成的架构匹配的匿名对象执行此操作:
var client = new RestClient();
client.BaseUrl = url;
var request = new RestRequest(Method.POST);
request.AddBody(new {
root = new {
request = new {
APIClientID = 4,
Version = 0,
APIPassword = "password",
Function = "TransAPIStats",
Params = new {
UserId = "abc",
page = "example.aspx",
Application = "hrblock-cb",
Function = "ecb"
}
}
}
});
或者,您可以定义一个与模式匹配的简单C#对象,并使用它代替内联匿名对象
如果需要对序列化进行控制(默认值应基于您显示的示例数据),则可以实现自己的iSeries。这方面的文档是这里的最后一部分:Me认为XDocument序列化程序将是一个方便的工具:-)谢谢您的回复John!我补充说,在中,但是当我运行它时,我返回了以下错误:XmlException未处理:名称不能以“可能最好将其移动到groups.google.com/group/restsharp”开头,在那里将有更多的人可以提供帮助。
var client = new RestClient();
client.BaseUrl = url;
var request = new RestRequest(Method.POST);
request.AddBody(new {
root = new {
request = new {
APIClientID = 4,
Version = 0,
APIPassword = "password",
Function = "TransAPIStats",
Params = new {
UserId = "abc",
page = "example.aspx",
Application = "hrblock-cb",
Function = "ecb"
}
}
}
});