You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Xero Contacts API POST接口时遇无效JSON错误求助

排查Xero Contacts POST接口"Invalid Json data"错误

核心问题:请求格式冲突

你的代码里设置了AlwaysMultipartFormData = true,但同时指定了content-type: application/json,这会导致请求体被错误编码,Xero无法识别JSON格式。

修复代码

移除AlwaysMultipartFormData = true的设置,RestRequest会根据AddBody的内容和指定的content-type自动处理请求格式:

public static async Task<string> SaveContact(string tenant_id, string contact)
{
    string result = "";
    string url = "https://api.xero.com/api.xro/2.0/contacts";
    string key = string.Format("Bearer {0}", Token);

    var client = new RestClient(url);
    var request = new RestRequest(Method.Post);
    request.AddHeader("authorization", key);
    request.AddHeader("Xero-tenant-id", tenant_id);
    request.AddHeader("content-type", "application/json");
    request.AddBody(contact, "application/json");

    var response = await client.ExecuteAsync(request);

    result = response.Content;

    if(response.StatusCode == HttpStatusCode.OK)
    {
        return "OK";
    }

    return result;
}

额外潜在问题:JSON中的冗余内容

除了请求格式问题,你的JSON里还有可能触发校验的内容:

  • AddressLine2填了两个空格,建议改为空字符串""
  • POBOX地址所有字段为空,建议直接移除这个空地址对象,或者填充必要字段
  • PhoneNumber开头有空格,建议清理为"011 852 2589"

验证步骤

  1. 先修复代码中的AlwaysMultipartFormData设置
  2. 清理JSON中的冗余空格和空对象
  3. 用Postman等工具先测试修正后的JSON,确认格式合法后再用代码调用

内容的提问来源于stack exchange,提问作者zdb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 08:45:39