【发布时间】:2013-08-21 17:34:26
【问题描述】:
我目前遇到了一个非常重要的问题,我希望有人能够解释一下,关于配置基于 XML-RPC 的 Web 服务以在我的基于游戏的学习虚拟世界和专用 Moodle 之间进行对话网站
据我所知,根据一些关于如何配置 Moodle 网络服务的稀疏信息,我已经完成了以下步骤:
- 启用的网络服务
- 启用 XML-RPC 协议
- 编辑了我的管理员角色以允许使用协议并创建用于记录的令牌 在
- 为已添加我的管理员的经过身份验证的用户创建服务
moodle 文档向您发送了一个循环,但据我所见,我已经涵盖了检查清单
我现在正尝试将其插入我的虚拟世界的后端,以根据用户可以访问的内容等为我的动态地形引擎填充主题、作业等
我的问题来自用于为用户检索令牌的简单 HttpWebRequest 我正在使用以下方法返回包含令牌的字符串
public string GetToken(string uname,string pword)
{
byte[] buffer = Encoding.ASCII.GetBytes("username="+uname+"&password="+pword+"&service=reflex");
HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url + "login/token.php?username=" + uname + "&password=" + pword + "&service=myservice");
WebReq.Method = WebRequestMethods.Http.Post;
WebReq.ContentType = "application/x-www-form-urlencoded";
WebReq.ContentLength = buffer.Length;
using(Stream PostData = WebReq.GetRequestStream())
PostData.Write(buffer, 0, buffer.Length);
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
using(StreamReader reader = new StreamReader(WebResp.GetResponseStream()))
return token = reader.ReadToEnd();
}
当我调试它以验证生成令牌时,它会抛出一个错误,说 Web 服务已关闭,但据我所知,这里没有调用 Web 服务,它使用内置的原始 php 文件返回一个字符串,仅此而已。我检查了 PostData.Write 及其抛出的 .Length NotSupportedException,我不确定它是否对第二个 using 语句有影响
我希望如果有人可以在配置设置方面提供帮助,因为 XML-RPC dll 看起来非常健壮且易于使用,因此后续步骤应该很容易到位
任何帮助将不胜感激
非常感谢 巴里
【问题讨论】:
标签: c# web-services login moodle