使用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&amp; 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."
}
]
}
]
}'

按线程转换为UTF8(如何在C#中将字符串转换为UTF-8?(https://community.xero.com/developer/discussion/32311#answer32331也不起作用。

也许我需要将ContentType设置为xml,但不确定如何使用XeroDSK。连接时可能通过XeroConfiguration?

谢谢。

问题不在于编码,但在我的实际代码中,我有一个更大的字符串,用于设置BankAccountDetails,而且在没有意识到的情况下,每当我更改它以添加特殊字符时,我都会用一个稍微长一点的字符串来设置它,这使它超过了字段的最大长度。它现在运行良好。谢谢大家。

最新更新