【问题标题】:Leaf.XNet C# Sending Body as Json not workingLeaf.XNet C#将正文作为Json发送不起作用
【发布时间】:2022-01-25 16:35:09
【问题描述】:
HttpRequest httpRequest = new HttpRequest();
RequestParams reqParams = new RequestParams { };
httpRequest.IgnoreProtocolErrors = true;

reqParams["data"] = "{\"path\": \"/Prime_Numbers.txt\"}";
httpRequest.AddHeader("Authorization", " Bearer MYKEY");
httpRequest.AddHeader("Content-Type", "application/json");

Console.WriteLine(httpRequest.Post("https://api.dropboxapi.com/2/sharing/create_shared_link_with_settings", reqParams).ToString());

我收到以下错误:调用 API 函数“sharing/create_shared_link_with_settings”时出错:请求正文:无法将输入解码为 JSON。我正在使用 Dropbox api。

我看到了以下内容:https://github.com/csharp-leaf/Leaf.xNet/issues/66(有人遇到过类似问题,但此修复无效)

【问题讨论】:

    标签: c# json api dropbox-api


    【解决方案1】:

    当您使用RequestParams 时,表示Context-Type: application/x-www-form-urlencoded
    您不能通过.AddHeader() 设置Content-Type,请使用.Post(url, json, contentType) 方法的参数,如下所示:

    HttpRequest httpRequest = new HttpRequest();
    httpRequest.AddHeader("Authorization", " Bearer MYKEY");
    
    string url = "https://api.dropboxapi.com/2/sharing/create_shared_link_with_settings";
    string jsonData = "{\"path\": \"/Prime_Numbers.txt\"}";
    string response = httpRequest.Post(url, jsonData, "application/json").ToString();
    
    Console.WriteLine(response);
    

    【讨论】:

    • 谢谢,成功了!
    猜你喜欢
    • 1970-01-01
    • 2022-11-13
    • 2018-07-18
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    相关资源
    最近更新 更多