在WPF项目中调用方法后,WebUntisAPI返回“未经身份验证”

时间:2018-12-18 14:52:28

标签: c# wpf api

为了简短起见: 以下方法从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 documentation如果您想自己阅读,我就知道了

0 个答案:

没有答案