Допустимый XML для публикации в QuickBooks Online Edition - Ошибка получения (400) неверного запроса - PullRequest
0 голосов
/ 20 июля 2009

Я пытаюсь отправить приведенный ниже xml на https://apps.quickbooks.com/j/AppGateway, и все, что я продолжаю получать, это ошибка: удаленный сервер возвратил ошибку: (400) Bad Request. У кого-нибудь есть идеи, что я делаю не так? Ниже приведен код C #, который я использую для публикации xml.

Спасибо, -Джефф

ОБНОВЛЕНИЕ: Чтобы добавить больше к моему вопросу, я думаю, что ошибка (400) Bad Request указывает на то, что у меня что-то не так с 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 ]

1 голос
/ 21 июля 2009

Измените версию qbXML на 6.0, QuickBooks Online Edition пока не поддерживает 7.0.

0 голосов
/ 28 февраля 2012

Вы можете получить XML для запроса клиента на этом сайте:

QuickBooks Online OSR

Выберите CustomerQuery в качестве сообщения. Используйте Chrome, потому что он работает не во всех браузерах. Нажмите XmlOps, и вы увидите XML.

С другой стороны, у меня есть коммерческое решение, доступное здесь:

Интеграция разработки QuickBooks Online C #

0 голосов
/ 21 июля 2009

Как Кит Палмер упомянул в своем ответе номер версии должен быть 6.0, но также должен включать атрибут onError тега QBXMLMsgsRq. (Я также исправил формат времени, как рекомендовано Кит Палмер .)

Полный / рабочий 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>
0 голосов
/ 20 июля 2009

где находится XML, отправленный в запросе? Или вам не хватает вставить код здесь. Я не вижу в запросе XML в приведенном выше коде. Запрос плохой, потому что запрос не содержит XML. По крайней мере из того, что я вижу выше

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...