【问题标题】:GoToWebinar - Request not in expected format - RestSharpGoToWebinar - 请求不是预期的格式 - RestSharp
【发布时间】:2012-04-30 18:54:00
【问题描述】:

与此论坛帖子类似: https://developer.citrixonline.com/forum/request-not-expected-format

但是他并没有真正解释他发现他的代码有什么问题。

我正在使用 RestSharp 进行 API 调用。我已经能够很好地提取即将举行的网络研讨会列表,但是当我尝试注册参与者时,我不断收到 400/Request not in expected format 错误。

按照此文档https://developer.citrixonline.com/api/gotowebinar-rest-api/apimethod/create-registrant,这是我的代码:

var client = new RestClient(string.Format("https://api.citrixonline.com/G2W/rest/organizers/{0}/webinars/{1}/registrants", "300000000000xxxxxx", btn.CommandArgument));
var request = new RestRequest(Method.POST);
request.RequestFormat = DataFormat.Json;

request.AddHeader("Accept", "application/json");
request.AddHeader("Accept", "application/vnd.citrix.g2wapi-v1.1+json");
request.AddHeader("Authorization", "OAuth oauth_token=" + System.Configuration.ConfigurationManager.AppSettings["GoToWebinar"]);

request.AddParameter("firstName", LoggedInUser.FirstName);
request.AddParameter("lastName", LoggedInUser.LastName);
request.AddParameter("email", LoggedInUser.Email);

var response = client.Execute(request);
var statusCode = response.StatusCode;

关于如何找出为什么我不断收到该错误的任何见解?

谢谢!

【问题讨论】:

    标签: c# asp.net json api restsharp


    【解决方案1】:

    您需要编写 JSON,而不是使用 AddParamter(将键/值参数添加到请求正文):

    request.DataFormat = DataFormat.Json;
    request.AddBody(new {
        firstName = LoggedInUser.FirstName,
        lastName = LoggedInUser.LastName,
        email = LoggedInUser.Email
    });
    

    如果您想直接指定它们,您还需要清除处理程序(自动设置 Accept 标头):

    client.ClearHandlers();
    

    【讨论】:

    • 做到了,非常感谢!我认为有一个选项可以使用 AddBody 或 AddParameter,如果它设置为 DataFormat = Json,它会从参数中生成 Json 主体。
    猜你喜欢
    • 1970-01-01
    • 2020-08-10
    • 2016-11-04
    • 1970-01-01
    • 2021-11-27
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    相关资源
    最近更新 更多