如何解决带有SDK和OAuth v2的Xero出现错误的请求错误
我有一个问题,我无法完全了解使用哪种.net编码方法来设置上述字段。这是我的代码:
Contact Contact = null;
Contacts Contacts = null;
List<Contact> ContactsList = null;
ContactsList = new List<Contact>();
Contacts = new Contacts();
//no error
Contact.BankAccountDetails = "detew";
//400 Bad Request error
Contact.BankAccountDetails = "&ew";
//I have tried encoding using:
System.Uri.EscapeDataString
System.Security.SecurityElement.Escape
System.Net.WebUtility.HtmlEncode
System.Xml.XmlConvert.EncodeName
System.Web.HttpUtility.HtmlEncode
System.Web.HttpUtility.UrlEncode
System.Web.HttpUtility.HtmlAttributeEncode
//But nothing works.
//This is the passed xml with error:
Xero.NetStandard.OAuth2.Client.ApiException: 'Xero API 400 error calling UpdateContact :{
"ErrorNumber": 10,"Type": "ValidationException","Message": "A validation exception occurred","Elements": [
{
"ContactID": "89d59636-6524-47b2-b047-0000000000000","ContactNumber": "Cust_4","AccountNumber": "Cust_4","ContactStatus": "ACTIVE","Name": "cpName","FirstName": "MyCustomerFirstName2","LastName": "MyCustomerLastName1","EmailAddress": "sfgdg@sdfs.lo","SkypeUserName": "","BankAccountDetails": "bkname& bankacname sortcode accnumber bicswift iban","UpdatedDateUTC": "\/Date(1604408524790)\/","ContactGroups": [],"Issupplier": false,"IsCustomer": false,"ContactPersons": [],"HasAttachments": false,"HasValidationErrors": true,"ValidationErrors": [
{
"Message": "The BankAccountDetails field cannot be more than 50 characters long."
}
]
}
]
}'
按照线程How can I transform string to UTF-8 in C#?转换为UTF8(https://community.xero.com/developer/discussion/32311#answer32331)也不起作用。
也许我需要将Content-Type设置为xml,但是不确定如何使用Xero DSK来完成。建立连接时也许通过XeroConfiguration?
谢谢。
解决方法
问题不是编码,但是在我的实际代码中,我使用了一个更大的字符串来设置BankAccountDetails,却没有意识到,每当我对其进行更改以添加特殊的char时,都使用一个较长的字符串来设置它超过该字段的最大长度。现在工作正常。谢谢大家。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。