【发布时间】:2014-05-14 21:43:07
【问题描述】:
I',使用 IPP java QBO ApiV3。我能够通过 API Explorer、IPP Playground 和我的 Java 应用读取和查询客户。
我无法通过 IPP Playground 和我的 Java 应用程序创建客户(或更新现有客户)。但是,我可以通过 API Explorer 创建和更新。我很困惑,我在 IPP Playground(500 - 内部服务器错误)和 Java 应用程序(message=Exception authenticationing OAuth;errorCode=003200)中遇到了不同的错误。
身份验证部分与读取客户的方法相同。此外,我只将请求正文(与 API Explorer 中的相同)附加到请求中。
Java 代码:
OAuthConsumer consumer = new DefaultOAuthConsumer(consumerKey, consumerSecret);
consumer.setTokenWithSecret(accessToken, accessTokenSecret);
String signedUrl = consumer.sign(custUrl);
URL url = new URL(signedUrl);
String requestBody = " <Customer xmlns=\"http://schema.intuit.com/finance/v3\" domain=\"QBO\" sparse=\"false\">"+
" <FamilyName>Customer Two</FamilyName>"+
" <DisplayName>Second Customer</DisplayName>"
" </Customer>";
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
urlConn.setDoOutput(true);
urlConn.setDoInput(true);
// add Request Header
urlConn.setRequestMethod("POST");
urlConn.setRequestProperty("Content-type", "application/xml");
urlConn.setRequestProperty("Content-Length", Integer.toString(requestBody.getBytes().length));
urlConn.setRequestProperty("Host", "qb.sbfinance.intuit.com");
urlConn.setRequestProperty("Accept-Encoding", "gzip,deflat");
urlConn.setRequestProperty("charset", "utf-8");
OutputStreamWriter wr = new OutputStreamWriter(urlConn.getOutputStream());
wr.write(requestBody);
wr.flush();
wr.close();
知道如何解决这个问题吗?
【问题讨论】:
标签: quickbooks quickbooks-online intuit