用于发布到QuickBooks Online Edition的有效XML - 接收(400)错误请求错误

时间:2009-07-20 17:40:30

标签: c# quickbooks quickbooks-online

我正在尝试将以下xml发布到https://apps.quickbooks.com/j/AppGateway,我不断得到的是错误:远程服务器返回错误:(400)错误请求。有没有人有任何想法我做错了什么?请参阅下面的我用于发布xml的C#代码。

谢谢, -Jeff

更新:为了在我的问题中添加更多内容,我认为(400)错误请求错误表明我有一些严重错误的xml或我发布xml的方式。所以这就是我问这个问题的原因......我在这里错过了什么?

<?xml version="1.0" encoding="utf-8" ?>
<?qbxml version="7.0"?>
<QBXML>
<SignonMsgsRq>
<SignonDesktopRq>
<ClientDateTime>7/20/2009 12:36PM</ClientDateTime>
<ApplicationLogin>APP_LOGIN</ApplicationLogin>
<ConnectionTicket>CONNECTION_TICKET</ConnectionTicket>
<Language>English</Language>
<AppID>APP_ID</AppID>
<AppVer>1</AppVer>
</SignonDesktopRq>
</SignonMsgsRq>
<QBXMLMsgsRq>
<CustomerQueryRq requestID="2" />
</QBXMLMsgsRq>
</QBXML>



WebRequestObject = (HttpWebRequest)WebRequest.Create(requestUrl);
WebRequestObject.Method = "POST";
WebRequestObject.ContentType = "application/x-qbxml";
WebRequestObject.AllowAutoRedirect = false;
string post = XmlText.Text;

WebRequestObject.ContentLength = post.Length;

swr = new StreamWriter(WebRequestObject.GetRequestStream());
swr.Write(post);
swr.Close();

WebResponseObject = (HttpWebResponse)WebRequestObject.GetResponse();

4 个答案:

答案 0 :(得分:1)

将qbXML版本更改为6.0,QuickBooks Online Edition尚不支持7.0。

答案 1 :(得分:0)

请求中发布的xml在哪里?或者您缺少在此处粘贴一些代码。我没有在上面的代码中看到请求中包含XML。请求很糟糕,因为请求不包含XML。至少从我上面看到的

答案 2 :(得分:0)

作为Keith Palmer mentioned in his answer,版本号必须为6.0,但还需要包含QBXMLMsgsRq标记的onError属性。 (我也按照Keith Palmer的推荐更正了时间格式。)

完成/工作xml在这里:

<?xml version="1.0" encoding="utf-8" ?> 
<?qbxml version="6.0"?> 
<QBXML> 
    <SignonMsgsRq>
        <SignonDesktopRq> 
            <ClientDateTime>2009-07-21T10:10:00</ClientDateTime> 
            <ApplicationLogin>APPLICATION_LOGIN</ApplicationLogin>
            <ConnectionTicket>CONNECTION_TICKET</ConnectionTicket>
            <Language>English</Language> 
            <AppID>APP_ID</AppID>
            <AppVer>1</AppVer> 
        </SignonDesktopRq> 
    </SignonMsgsRq> 
    <QBXMLMsgsRq onError="continueOnError"> 
        <CustomerQueryRq requestID="2" /> 
    </QBXMLMsgsRq> 
</QBXML>

答案 3 :(得分:0)

您可以在此站点获取客户查询的XML:

QuickBooks Online OSR

选择CustomerQuery作为消息。使用Chrome是因为它无法在所有浏览器中使用。单击XmlOps,您将看到XML。

另一方面,我在这里有一个商业解决方案:

QuickBooks Online C# Development Integration