如何从c连接到XML-RPC#
如何从c#连接到XML-RPC Api 客户端可以通过发布到以下地址与Pandorabot交互: 客户端需要发布的表单变量包括: botid-见上文H.1。 输入-你想对机器人说什么。 custid—跟踪与特定客户对话的ID。此变量是可选的。如果不发送值,Pandorabots将在返回的XML元素中返回custid属性值。在后续帖子中使用此选项继续对话如何从c连接到XML-RPC#,c#,pandorabots,C#,Pandorabots,如何从c#连接到XML-RPC Api 客户端可以通过发布到以下地址与Pandorabot交互: 客户端需要发布的表单变量包括: botid-见上文H.1。 输入-你想对机器人说什么。 custid—跟踪与特定客户对话的ID。此变量是可选的。如果不发送值,Pandorabots将在返回的XML元素中返回custid属性值。在后续帖子中使用此选项继续对话 如何打电话?这应该可以让你开始: public void Talk() { string xmlResult =
如何打电话?这应该可以让你开始:
public void Talk()
{
string xmlResult = null;
Result result = null; // Result declared at the end
string botId = "c49b63239e34d1"; // enter your botid
string talk = "Am I a human?";
string custId = null; // (or a value )
using (var wc = new WebClient())
{
var col = new NameValueCollection();
col.Add("botid", botId);
col.Add("input", talk);
if (!String.IsNullOrEmpty(custId))
{
col.Add("custid", custId);
}
byte[] xmlResultBytes = wc.UploadValues(
@"http://www.pandorabots.com/pandora/talk-xml",
"POST",
col);
xmlResult = UTF8Encoding.UTF8.GetString(xmlResultBytes);
result = Result.GetInstance(xmlResultBytes);
}
//raw result
Console.WriteLine(xmlResult);
// use the Result class
if (result.status == 0) // no error
{
Console.WriteLine("{0} -> {1}",
result.input, result.that);
}
else // error
{
Console.WriteLine("Error: {0} : {1}",
result.input, result.message);
}
}
[XmlRoot(ElementName="result")]
public class Result
{
static XmlSerializer ser = new XmlSerializer(typeof(Result) , "");
public Result()
{
}
public static Result GetInstance(byte[] bytes)
{
return (Result)ser.Deserialize(new MemoryStream(bytes));
}
[XmlAttribute]
public int status { get; set; }
[XmlAttribute]
public string botid { get; set; }
[XmlAttribute]
public string custid { get; set; }
[XmlElement]
public string input { get; set; }
[XmlElement]
public string that { get; set; }
[XmlElement]
public string message { get; set; }
}
你做了什么研究?你试过什么?您是否遇到我们可以帮助您解决的特定错误?可能重复:。虽然他们至少付出了一点努力,但这并不是这个问题的重复,我试图做的是向那个api发送http请求并请求输出。我是XML-RPC新手,我不知道它是如何工作的。这是他们提供的文档,我不知道如何输入变量、发送请求和获得响应,你能帮我吗结果中的“结果”=null;,它给了我一个错误,它是一个数据类型吗?是的,我的错,我看到了下面的公开声明,好的。谢谢,它工作得很好,你能提供C++版本吗?我试过了,但是功能给我错误,我不能。我不是C++开发者。你用C语言标记了你的问题,所以你得到的是:-)。你可以把我的答案标记为正确的,试着让你自己去实现C++的运行,当你陷入困境时,提出一个新的问题,显示你的代码并引用这个问题和答案。堆栈溢出不是C++实现的BOT: