【发布时间】: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