tag:blogger.com,1999:blog-7413274486781112158.post8301257616223337767..comments2023-06-02T03:18:10.425-04:00Comments on Dan's .NET Blog: Salesforce REST API Record CreationDan Borishttp://www.blogger.com/profile/07071989815220997114noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-7413274486781112158.post-84659142366281355232014-09-22T09:02:44.239-04:002014-09-22T09:02:44.239-04:00@nas, check out this post which explains how to fu...@nas, check out this post which explains how to further troubleshoot this sort of error...<br /><br />http://danlb.blogspot.com/2013/09/salesforce-rest-exceptions.htmlDan Borishttps://www.blogger.com/profile/07071989815220997114noreply@blogger.comtag:blogger.com,1999:blog-7413274486781112158.post-7484478152906031622014-09-17T16:38:33.897-04:002014-09-17T16:38:33.897-04:00I keep getting a 'The remote server returned a...I keep getting a 'The remote server returned an error: (400) Bad Request' trying to update a record in Salesforce.<br /><br />Below is my code. Any help would be much appreciated<br /><br /> Public Sub UpdateOrders()<br /> Dim Address As Uri = New Uri("https://centerpoint.force.com/REPs/services/data/v30.0/sobjects/Order__c/")<br /> Dim request As HttpWebRequest<br /> Dim response As HttpWebResponse = Nothing<br /> Dim reader As StreamReader<br /> Dim postStream As Stream = Nothing<br /> Dim serializer As JavaScriptSerializer = New JavaScriptSerializer()<br /> Dim byteArray() As Byte<br /><br /> 'Create the data to send <br /> Dim ID As String<br /> Dim dt As DataTable = cOrders.API_TrueCost_GetOrdersToUpdate<br /> If dt.Rows.Count > 0 Then<br /> For i As Integer = 0 To (dt.Rows.Count - 1)<br /> Dim dr As DataRow = dt.Rows(i)<br /> Dim Orders As New List(Of Order)()<br /> Orders.Add(New Order With {.Order_Status__c = dr.Item("Order_Status__c").ToString()})<br /><br /><br /> ID = dr.Item("Id").ToString<br /><br /> 'Dim Method = New HttpMethod("PATCH")<br /><br /> 'Create the web request<br /> request = DirectCast(WebRequest.Create(Address.ToString + ID), HttpWebRequest)<br /><br /> 'Add token to header<br /> request.Headers.Add("Authorization", "Bearer " + _AccessToken)<br /><br /> 'Set type to POST<br /> request.Method = "PATCH"<br /> request.ContentType = "application/json"<br /><br /> 'create byte array for data to send<br /> Dim serializedResult = serializer.Serialize(Orders.First)<br /> byteArray = UTF8Encoding.UTF8.GetBytes(serializedResult.ToString())<br /><br /> 'Set the content length in the request headers <br /> request.ContentLength = byteArray.Length<br /><br /><br /> 'Write data <br /> postStream = request.GetRequestStream()<br /> postStream.Write(byteArray, 0, byteArray.Length)<br /><br /> Try<br /> 'Get Response<br /> response = DirectCast(request.GetResponse(), HttpWebResponse)<br /><br /> 'Get the response stream into a reader<br /> reader = New StreamReader(response.GetResponseStream())<br /><br /> cOrders.API_TrueCost_UpdateOrders(dr.Item("Id").ToString())<br /> Catch ex As Exception<br /> Throw ex<br /> Finally<br /> If Not postStream Is Nothing Then postStream.Close()<br /> End Try<br /> Next i<br /> End If<br /><br /> End SubAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-7413274486781112158.post-2577583979309599762013-03-01T09:53:47.020-05:002013-03-01T09:53:47.020-05:00Tks! Very helpfull article!
Can u update it or cr...Tks! Very helpfull article!<br /><br />Can u update it or create a new version using HttpClient instead HttpWebRequest ?!<br /><br />Im trying to use HttpClient, but its not working to POST and PUT, just with GET methods. <br /><br />I always receive a message: "Can not desrialize SObject out of VALUE_STRING token. errorCode: JSON_PARSE_ERROR";<br /><br />Im using the same json at WebRequest and HttpClient. With WebRequest, following your example, it works well..<br /><br />Here is my code with HttpClient:<br /><br /> var uri = "https://na15.salesforce.com/services/data/v27.0/sobjects/Account";<br /><br /> var acc = new Account();<br /> acc.Name = "RestAPIHttpClient";<br /><br /> var ser = new JavaScriptSerializer();<br /> var body = ser.Serialize(acc);<br /><br /> HttpClient client = new HttpClient();<br /><br /> client.DefaultRequestHeaders.Add("Authorization", "Bearer " + binding.SessionHeaderValue.sessionId);<br /><br /> var response = await client.PostAsJsonAsync(uri, body);<br /> var stringresponse = await response.Content.ReadAsStringAsync();<br /> Console.WriteLine(stringresponse); <br /><br />Many tks in advance!Anonymoushttps://www.blogger.com/profile/12038057324359648173noreply@blogger.comtag:blogger.com,1999:blog-7413274486781112158.post-83100835367172748312012-09-18T16:13:25.786-04:002012-09-18T16:13:25.786-04:00@Shailesh: I am not sure what your question is? Th...@Shailesh: I am not sure what your question is? The JSON is not passed as a query string, it IS passed as part of the request.Dan Borishttps://www.blogger.com/profile/07071989815220997114noreply@blogger.comtag:blogger.com,1999:blog-7413274486781112158.post-25540143851719010412012-09-17T09:24:32.277-04:002012-09-17T09:24:32.277-04:00Thanks for article!!
I've a question here;
I&...Thanks for article!!<br />I've a question here;<br /><br />I've created my own class with methods which creates Leads and contacts in Salesforce account. <br /><br />How can we pass json string as a request instead of sending parameters in query string to @httpPost using C#?<br />Can we use @HttpPost to perform insert and update operation in one go? <br />Shaileshhttps://www.blogger.com/profile/06860367718396007735noreply@blogger.comtag:blogger.com,1999:blog-7413274486781112158.post-61394638552003546452012-09-17T09:21:56.892-04:002012-09-17T09:21:56.892-04:00This comment has been removed by the author.Shaileshhttps://www.blogger.com/profile/06860367718396007735noreply@blogger.comtag:blogger.com,1999:blog-7413274486781112158.post-16699497060477391512012-05-17T05:30:06.698-04:002012-05-17T05:30:06.698-04:00Great article. Thanks that you sharing us this.Great article. Thanks that you sharing us this.Timohttps://www.blogger.com/profile/10615756915169146109noreply@blogger.com