Moodle和C#Web服务配置
我目前遇到了一个非常重要的问题,我希望有人能够解释一下,关于配置基于XML-RPC的web服务,以便在我基于游戏的学习虚拟世界和专用Moodle站点之间进行对话 据我所知,从以下关于如何配置Moodle web服务的稀疏信息中,我完成了以下步骤:Moodle和C#Web服务配置,c#,web-services,login,moodle,C#,Web Services,Login,Moodle,我目前遇到了一个非常重要的问题,我希望有人能够解释一下,关于配置基于XML-RPC的web服务,以便在我基于游戏的学习虚拟世界和专用Moodle站点之间进行对话 据我所知,从以下关于如何配置Moodle web服务的稀疏信息中,我完成了以下步骤: 启用的Web服务 启用了XML-RPC协议 编辑了我的管理员角色,以允许使用协议和创建用于日志记录的令牌 在 为已添加“我的管理员”的经过身份验证的用户创建服务 moodle文档向您发送了一个循环,但从我所看到的,我已经涵盖了检查列表 我现在正试图
- 启用的Web服务
- 启用了XML-RPC协议
- 编辑了我的管理员角色,以允许使用协议和创建用于日志记录的令牌 在
- 为已添加“我的管理员”的经过身份验证的用户创建服务
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看起来非常健壮并且易于使用
任何帮助都将不胜感激
非常感谢
巴里现在解决了
通过sql调用手动检索令牌,并使web服务立即运行如果您查看表mdl_external_services,则有一个名为short name的字段,该字段可能为空,因为您似乎无法通过moodle UI填充它。这个值需要用作服务参数,而不是服务名称