c# - 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# - 执行 inkCanvas1.Strokes.Erase() 后的 WPF-InkCanvas 撤消操作
- java - Cytoscape java:将边缘一直绘制到节点的中心
- c# - c# asp.net 身份和自定义角色
- yii2 - 如何更改 yii2 Query Builder 的数据库名称
- java - 休眠@ManyToOne 映射
- git - Git 提交速度非常慢
- node.js - 'await' 在等待基于 promise 的函数时对此表达式的类型没有影响
- tsql - 将 FIRST_VALUE 与基于另一列的条件一起使用
- typescript - Typescript fluent api builder多个参数(覆盖)不可能
- r - 如何下载和阅读htm。R中的文件