首页 > 解决方案 > WebUntisAPI 在 WPF 项目中调用方法后返回“未验证”

问题描述

简而言之:以下方法从 WebUntisAPI 调用一个方法(这里我们查找所有房间):

(this.sessionID 已经存储了我之前在身份验证方法中请求的会话 ID)

public void getRooms()
        {
            client.AddHandler(new JsonDeserializer(), "application/json-rpc");

            var request = new RestRequest(Method.POST);
            request.AddHeader("Content-type", "application/jason");

            request.AddJsonBody(new
            {
                id = this.sessionID,
                method = "getRooms",
                @params = new {},
                jsonrpc = "2.0"
            });

            var response = this.client.Execute(request);
            var deserialized = JsonConvert.DeserializeObject<GetRoomsResponse>(response.Content);

            try
            {
                foreach (GetRoomsResult i in deserialized.res)
                {
                    Console.WriteLine(i.name);
                }
            }catch(Exception e)
            {
                Console.WriteLine("Something wrong with deserialization!");
            }
        }

问题是,响应如下:

{"jsonrpc":"2.0","id":"030BDA942554038735AE69C94D6B0491","error":{"message":"not authenticated","code":-8520}}

但乐趣还没有结束!如果我复制创建的 json 正文并将他放入邮递员中,使用 this.sessionID 变量中的相同键(当然也是相同的 URL)它工作得很好。如果我在程序之外生成 sessionID 并将其硬编码到变量中,它就不能正常工作。

任何人都已经使用过 WebUntisAPI 并且知道为什么这不起作用?

我认为这可能与 WebUntis 无关,而是与编译后 WPF 的工作方式有关。我真的不知道。

感谢您的任何建议和帮助,费边

编辑: 如果您想自己阅读,我得到/找到了WebUntisAPI 文档

标签: c#wpfapi

解决方案


推荐阅读