Как обновить услугу/продукт с помощью qbxml

Я хочу изменить существующий продукт/услугу, созданный в агрегате SalesorPurchase с использованием qbxml. Ниже приведен код, который я использую сейчас. Но он показывает код ошибки «400». Может ли кто-нибудь помочь мне в этом.

версия: Quickbooks онлайн (QBXML 6.0)

    <?xml version="1.0" ?>
    <?qbxml version="6.0"?>
     <QBXML>    
     <SignonMsgsRq>     
     <SignonTicketRq>           
     <ClientDateTime>2013-05-31T19:25:26</ClientDateTime>           
     <SessionTicket>V1-92-Q0yzasxa55g3869b5u</SessionTicket>
     <Language>English</Language>           
    <AppID>70038</AppID>        
    <AppVer>1</AppVer>      
    </SignonTicketRq>   
    </SignonMsgsRq> 
    <QBXMLMsgsRq onError="stopOnError">
    <ItemServiceModRq>
    <ItemServiceMod>
    <ListID>4</ListID>
    <EditSequence>0</EditSequence>
    <Name>QBTubes1</Name>
    <SalesOrPurchaseMod>
    <Desc>All Shirts</Desc>
     <Price>49</Price>
    <AccountRef>
      <FullName>Sales</FullName>
    </AccountRef>
    </SalesOrPurchaseMod>
    </ItemServiceMod>
    </ItemServiceModRq>
    </QBXMLMsgsRq></QBXML>

Метод запроса:

 protected static String _doRequest(String xml) throws Exception {
        String xmlOut = null;

               try 
               {
                  URL url= new URL(GenericQBXML._appURL);
                  HttpsURLConnection connection =      (HttpsURLConnection)url.openConnection();
                  connection.setDoOutput(true);
                  connection.setDoInput(true);

                  connection.setRequestProperty("Content-Type", "application/x-qbxml");

                  PrintWriter out = new PrintWriter(connection.getOutputStream());
                  out.println(xml); //XML Input
                  out.close();
                  BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                  String inputLine = "";
                 String xmlOut = "";
                  StringBuffer strOut = new StringBuffer();

                  while ((inputLine = in.readLine()) != null)
                  {
                      strOut.append(inputLine);
                  }
                  xmlOut = strOut.toString();

                  in.close();
               }
               catch(ConnectException conEx)
               {
                  throw new Exception(conEx.getMessage());
               }
               catch(MalformedURLException malformedURLEx)
               {
                  throw new Exception(malformedURLEx.getMessage());
               }
               catch(IOException ioEx)
               {
                  throw new Exception(ioEx.getMessage());
               }
               return xmlOut;
    }

Заранее спасибо.


person sayagoud ravelly    schedule 31.05.2013    source источник
comment
Можете ли вы опубликовать фактическое сообщение об ошибке / XML-ответ, который вы получаете от QuickBooks?   -  person Keith Palmer Jr.    schedule 31.05.2013
comment
@Keith Palmer, вот ответ от сервера QuickBooks, который вернул код HTTP-ответа: 400 для URL-адреса: webapps.quickbooks. com/j/AppGateway   -  person sayagoud ravelly    schedule 31.05.2013
comment
Это указывает на то, что вы отправляете что-то неправильно в своем HTTP-запросе. Можете ли вы опубликовать свой код и/или остальную часть вашего HTTP-запроса вместо крошечного фрагмента?   -  person Keith Palmer Jr.    schedule 31.05.2013
comment
@Keith, я отредактировал свой вопрос и добавил общий запрос. Я что-то упустил, кроме этого?   -  person sayagoud ravelly    schedule 31.05.2013
comment
Может ли кто-нибудь помочь мне в этом ..   -  person sayagoud ravelly    schedule 10.06.2013
comment
Какой заголовок Content-Type вы отправляете в своем исходящем HTTP-запросе? Можете ли вы опубликовать свой код? Запрос выглядит действительным.   -  person Keith Palmer Jr.    schedule 10.06.2013
comment
@Keith Спасибо за ваш быстрый ответ. Я добавил общий HTTP-запрос. Нужно ли что-то настраивать в учетной записи Quick books? Пожалуйста, помогите мне.   -  person sayagoud ravelly    schedule 10.06.2013


Ответы (1)


             New Request :


             <?xml version="1.0" ?>
                    <?qbxml version="6.0"?>
                     <QBXML>    
                     <SignonMsgsRq>     
                     <SignonTicketRq>           
                     <ClientDateTime>2013-05-31T19:25:26</ClientDateTime>           
                     <SessionTicket>V1-92-Q0yzasxa55g3869b5u</SessionTicket>
                     <Language>English</Language>           
                    <AppID>70038</AppID>        
                    <AppVer>1</AppVer>      
                    </SignonTicketRq>   
                    </SignonMsgsRq> 
                    <QBXMLMsgsRq onError="stopOnError">
                    <ItemServiceModRq>
                    <ItemServiceMod>
                    <ListID>4</ListID>
                    <EditSequence>0</EditSequence>
                    <Name>QBTubes1</Name>
                    <SalesOrPurchaseMod>
                     <Desc>All Shirts</Desc>
                     <Price>49</Price>
                    </SalesOrPurchaseMod>
                    </ItemServiceMod>
                    </ItemServiceModRq>
                    </QBXMLMsgsRq></QBXML>


              I have just removed below code from the original request and it's working now.we can not update Account details through the quick books online.here is the reference 

http://dev.developer.intuit.com/qbSDK-current/OSR/OnscreenRef/index-QBO.html

                   <AccountRef>       
                      <FullName>Sales</FullName>
                   </AccountRef>
person sayagoud ravelly    schedule 11.06.2013