spring - 从 java 代码在 xero 中创建联系人会产生错误的请求
问题描述
以下是我在 xero 中创建联系人时遇到错误的日志,因为我想在 xero 中创建多个联系人,我编写了 api,但是如果我在邮递员中发送相同的请求,它工作正常,则会出现以下错误。
<pre>com.xero.api.XeroApiException: Bad Request
com.xero.api.XeroApiExceptionHandler.execute(XeroApiExceptionHandler.java:27)
com.xero.api.client.AccountingApi.createContact(AccountingApi.java:912)
in.techchefs.anyspace.common.service.impl.XeroServiceImpl.addContactToXero(XeroServiceImpl.java:274)
下面是调用 Contact API 的代码
public Contact addContactToXero(User user, String currencyCode) throws IOException {
logger.info("inside xeroservise User addContactToXero---->>"+currencyCode);
ApiClient client = new ApiClient();
accountingApi = AccountingApi.getInstance(client);
Contact contact = new Contact();
contact.setIsCustomer(true);
contact.setIsSupplier(true);
String businessName = user.getFirstName() + " " + user.getLastName() + " " + user.getId();
if (user.getBusinessInfo() != null && user.getBusinessInfo().getName() != null) {
businessName = user.getBusinessInfo().getName();
}
contact.setName(businessName);
contact.setFirstName(user.getFirstName());
contact.setLastName(user.getLastName());
contact.setContactNumber(user.getPhone());
contact.setEmailAddress(user.getEmail());
List<Address> arrayOfAddress = new ArrayList<Address>();
Set<UserAddress> userAddresses = user.getAddress();
for (Iterator iterator = userAddresses.iterator(); iterator.hasNext();) {
UserAddress userAddress = (UserAddress) iterator.next();
Address address = new Address();
address.setAddressLine1(userAddress.getStreet());
address.setAddressLine2(userAddress.getSuburb());
address.setAddressType(userAddress.getAddressType() == 1 ? AddressTypeEnum.DELIVERY : AddressTypeEnum.POBOX);
address.setRegion(userAddress.getState());
address.setPostalCode(userAddress.getPostalCode());
address.setCountry(userAddress.getCountry() == null ? "" : userAddress.getCountry().getTitle());
arrayOfAddress.add(address);
}
contact.setAddresses(arrayOfAddress);
contact.setContactStatus(ContactStatusEnum.ACTIVE);
logger.info("addContactToXero by USer contact--->>"+contact);
String accessToken=getAccessToken(currencyCode);
logger.info("addContactToXero by USer accessToken--->>"+accessToken);
XeroTokenStorage token=tokenStorageService.getByCurrencode(currencyCode);
logger.info("addContactToXero by USer token.getTenantId()--->>"+token.getTenantId());
Contacts contatcsAdded = accountingApi.createContact(accessToken,token.getTenantId(),contact);
List<Contact> contatcsAddedList = contatcsAdded.getContacts();
return contatcsAddedList.get(0);
//return contatcsAdded;
}
我给记录器联系
class Contact {
contactID: null
contactNumber: 6666
accountNumber: null
contactStatus: ACTIVE
name: Marc Verano 1
firstName: Marc
lastName: Verano
emailAddress: info@anyspaces.com
skypeUserName: null
contactPersons: []
bankAccountDetails: null
taxNumber: null
accountsReceivableTaxType: null
accountsPayableTaxType: null
addresses: []
phones: []
isSupplier: true
isCustomer: true
defaultCurrency: null
xeroNetworkKey: null
salesDefaultAccountCode: null
purchasesDefaultAccountCode: null
salesTrackingCategories: []
purchasesTrackingCategories: []
trackingCategoryName: null
trackingCategoryOption: null
paymentTerms: null
updatedDateUTC: null
contactGroups: []
website: null
brandingTheme: null
batchPayments: null
discount: null
balances: null
attachments: []
hasAttachments: null
validationErrors: []
hasValidationErrors: null
}
我从 java 得到的错误是错误的请求,如果我通过邮递员发送它正在工作,则相同的请求。请告诉我一些解决方案
解决方案
您的问题中有一条线索 - “如果我通过邮递员发送相同的请求它正在工作” - 联系人姓名和号码需要是唯一的,因此请检查您是否为这些字段提供唯一值。
然而,正如 droopsnoot 在评论中提到的那样,任何验证错误都将从 Xero API 返回,因此询问响应,您可能会找到它发生的原因。
推荐阅读
- dialogflow-es - 在 springboot 应用程序中创建 Dialogflow 意图
- r - 基于列“bins”重新排列矩阵
- android - 在 recyclerView 中通过 PackageManager 获取应用程序包的问题
- python - 当我不从基本 HTML 扩展时,Django UserCreationForm 仅显示在我的 HTML 文件中
- android - 如何使用 MVVM 模式应用标签标题
- javascript - 打字稿将纯字符串转换为地图
- angular - Angular 中的 Bootstrap 4,使用 npm 添加 custom.css 文件安装
- html - 有条件地在两个 XML 文件之间进行选择以使用 XSLT 进行网页设计
- sql - SQL - 其他列的工资总和
- java - 访问隐藏方法 Ldalvik/system/DexPathList;->findResource(Ljava/lang/String;)Ljava/net/URL; (greylist-max-o, 链接, 拒绝) 创建 url