微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有SDK和OAuth v2的Xero出现错误的请求错误

如何解决带有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."
        }
      ]
    }
  ]
}'

按照线程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 举报,一经查实,本站将立刻删除。