【问题标题】:Quickbook invoice create returns 400 bad request (SANDBOX, Quickbook Online, C# MVC, OAuth 2.0)Quickbook 发票创建返回 400 错误请求(SANDBOX、Quickbook Online、C# MVC、OAuth 2.0)
【发布时间】:2018-04-18 11:58:49
【问题描述】:

嗯,我正在创建 Quickbook 在线条目,但由于某种原因,我收到了错误(400 错误请求)。

我知道我的请求中有些内容无效,但我无法弄清楚。我正在使用沙盒帐户。我从 API Explorer 复制了默认数据,并仅使用此数据发出请求,最后收到 400 个错误请求。

我的代码对于"Select * from invoice" 查询请求运行良好。

我使用的基本 URL sandbox-quickbooks.api.intuit.com

我的代码如下:-

var principal = User as ClaimsPrincipal;
Session["realmId"] = XXXXXXX;
var result = new HttpResponseMessage();

if (Session["realmId"] != null)
{
    string realmId = Session["realmId"].ToString();

    string qboBaseUrl = ConfigurationManager.AppSettings["QBOBaseUrl"];

    //add qbobase url and query
    string uri = string.Format("{0}/v3/company/{1}/invoice", qboBaseUrl, realmId);

    try
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Add("Accept", "application/json;charset=UTF-8");
        client.DefaultRequestHeaders.Add("ContentType", "application/json;charset=UTF-8");
        client.DefaultRequestHeaders.Add("Authorization", "Bearer " + Session["AccessToken"]);
        result = await client.PostAsync(uri, new StringContent(JsonData, System.Text.Encoding.UTF8, "application/json"));

        return result;
    }
    catch (Exception ex)
    {
        return result;
    }
}
else
    return result;

【问题讨论】:

  • 检查响应的正文,看看它是否提供了有关请求问题的任何详细信息。
  • 还有一些建议。不要为每个请求创建一个新的HttpClient。如果负载过重,它将在未来使用套接字给您带来问题。
  • 好吧,是的,我会用延迟加载的概念来做这件事,这仅用于测试目的。
  • 我找不到响应字段。但我可以看到 statuscode:400, ReasonPhrase: 'Bad Request', Version : 1.1: Content....
  • 检查响应的正文。即var responseContent = await result.Content.ReadAsStringAsync();

标签: c# quickbooks-online


【解决方案1】:

检查响应的正文,看看它是否提供了有关请求错误的任何详细信息。

//...

var responseContent = await result.Content.ReadAsStringAsync();

//...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多