Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Xero with SDK和OAuth v2获取错误请求错误_C#_Oauth_Xero - Fatal编程技术网

C# 使用Xero with SDK和OAuth v2获取错误请求错误

C# 使用Xero with SDK和OAuth v2获取错误请求错误,c#,oauth,xero,C#,Oauth,Xero,我有一个问题,我不太清楚使用哪种.net编码方法来设置上述字段。这是我的密码: Contact Contact = null; Contacts Contacts = null; List<Contact> ContactsList = null; ContactsList = new List<Contact>(); Contacts = new Contacts(); //no error Contact.BankAccountDetails = "de

我有一个问题,我不太清楚使用哪种.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."
        }
      ]
    }
  ]
}'

Contact-Contact=null;
联系人=空;
列表联系人列表=空;
ContactsList=新列表();
联系人=新联系人();
//无误
Contact.BankAccountDetails=“detew”;
//400错误请求错误
Contact.BankAccountDetails=“&ew”;
//我已尝试使用以下方式进行编码:
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.HtmlAttributeNCode
//但什么都不管用。
//这是传递的xml,有错误:
Xero.NetStandard.OAuth2.Client.ApiException:“Xero API 400调用UpdateContact时出错:{
“错误编号”:10,
“类型”:“ValidationException”,
“消息”:“发生验证异常”,
“要素”:[
{
“联系人ID”:“89d59636-6524-47b2-b047-0000000000000”,
“联系人号码”:“客户4”,
“账号”:“客户4”,
“联系人状态”:“活动”,
“名称”:“cpName”,
“名字”:“MyCustomerFirstName2”,
“姓氏”:“MyCustomerLastName1”,
“电子邮件地址”:”sfgdg@sdfs.lo",
“SkypeUserName”:“”,
“银行账户详情”:“bkname&;bankacname sortcode账号BICSIFT iban”,
“UpdateDateUTC”:“\/日期(1604408524790)\/”,
“联系人组”:[],
“发行人”:假,
“iCustomer”:错误,
“联系人”:[],
“HasAttachments”:假,
“HasValidationErrors”:正确,
“验证错误”:[
{
“消息”:“BankAccountDetails字段的长度不能超过50个字符。”
}
]
}
]
}'
按照线程转换为UTF8()也不起作用

也许我需要将内容类型设置为xml,但不确定如何使用Xero DSK。连接时可能通过静电配置


谢谢。

问题不是编码,但在我的实际代码中,我有一个更大的字符串,用于设置BankAccountDetails,而没有意识到,每当我更改它以添加特殊字符时,我都会使用一个稍长的字符串来设置它,这使得它超出了字段的最大长度。现在很好用。感谢大家。

您可能正在使用TLS 1.0/1.1,您需要使用TLS 1.2。请参阅:我正在使用TLS 1.2请参见以下内容:。下面使用xero中的httpclient并向客户端添加一个头用户代理。内容类型也是一个标题,将以类似的方式添加:谢谢,但我认为这不是使用sdkDoes,它重要吗?您仍在使用同一个客户端,并希望添加HTTP头。