我的JSON体似乎有语法问题。代码的目的是使用API从LetterXpress检索余额,但不能进行身份验证,我收到的响应是:
(“{“message”:“未经授权。"}”)
使用Postman时请求工作正常。
下面是我的C#代码:
var client = new RestClient("https://api.letterxpress.de/v2/balance");
var request = new RestRequest(Method.GET);
request.AddHeader("Content-Type", "application/json");
string jsonString = "{" +
"\"auth\": {" +
"\"username\" : \"LXPApi1\"," +
"\"apikey\" : \"442807b35e250ec767221fe3ba\"," +
"\"mode\" : \"live\"" +
"}" + "}";
request.AddJsonBody(jsonString);
IRestResponse response = await client.ExecuteAsync(request);
string meinString = response.Content;
textBox4.Text = meinString;
用这个代码,我已经试过了。我怀疑jsonString
中的语法不正确。但是,我找不到错误。
2条答案
按热度按时间g6baxovj1#
JSON编码字符串!
AddJsonBody
期望一个将被自动序列化的对象-请参阅文档。您所做的实际上是对字符串进行JSON编码,因此请求将永远无法将其反序列化到您的期望。你应该做的是传递一个具有所有预期属性的对象。您可以使用匿名对象或具体类作为请求主体:
带正文的GET请求
您正在发送一个GET请求,并试图在请求中包含一个对GET请求无效的正文。很有可能你应该发送一个POST请求。
不幸的是,API Documentation (in German)显示了一个GET请求,大多数(如果不是全部的话)HTTP客户端都不支持该请求,并且可能不包括请求的主体,即使您已经设置了它。
旁注
yx2lnoni2#
你正在错误地建立请求这里是一个很好的调用,但未授权。
仍然没有授权,正如你提到的-代码运行wwith Postman 请求请添加 Postman 请求x1c 0d1x的屏幕截图