Я хочу изменить существующий продукт/услугу, созданный в агрегате 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;
}
Заранее спасибо.