c#使用自定义头调用Salesforce Rest Api



我正在尝试使用Rest Api在Salesforce中插入一个新联系人,但不幸的是得到400个坏请求异常。而使用邮差一切都是完美的,但通过代码它抛出异常。谁能告诉我哪里错了?

        string new_Contact_url =         ConfigurationManager.AppSettings["SalesForceBaseUrl"] + "sobjects/contact";           
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new_Contact_url);
        request.Method = "POST";            
        request.Headers.Add("Authorization", "Access_Token");
        request.ContentType = "application/json; charset=utf-8";
        var keyValues = new Dictionary<string, string>
           {
               { "LastName", "Nafees" },
               { "Email", "email "},
               { "Tools_User_ID__c", "login_id" }
           };
        JavaScriptSerializer js = new JavaScriptSerializer();
        string postData = js.Serialize(keyValues);
        byte[] byteArray = Encoding.UTF8.GetBytes(postData.Trim());
        request.ContentLength = byteArray.Length;
        Stream dataStream = request.GetRequestStream();          
        dataStream.Write(byteArray, 0, byteArray.Length);         
        dataStream.Close();
        WebResponse response = request.GetResponse();                       
        dataStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(dataStream);           
        var resp = reader.ReadToEnd();
        var serializer = new JavaScriptSerializer();
        var responseBody = (IDictionary<string, object>)serializer.DeserializeObject(resp);
        if (!string.IsNullOrEmpty(responseBody["access_token"].ToString()))
        {
            string id = responseBody["Id"].ToString();
        }

Salesforce最近从支持TLS1.0切换到支持TLS1.2。

你可以在你的c#代码中添加这个:

using System.Net;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

ServicePointManager部分应该在发送请求之前。

最新更新