I have developed a number of links to FreshDesk API including Create Customer, Create Ticket, Read Companies / Contacts, Read Tickets but struggling to get Update Ticket to work.
Here is my Code
Public uRequestUri As String = "https://xxx.freshdesk.com"
Public sAPIKey As String = " Our API Key]"
Public uTickets As List(Of FreshDesk_Ticket)
Public Class FreshDesk_Ticket
Public id As Integer
Public attachments() As Object
Public cc_mails() As String
Public company_id As String
Public custom_fields As Object
Public deleted As Boolean
Public description As String
Public description_text As String
Public due_by As Date
Public email As String
Public email_config_id As String
Public facebook_id As String
Public fr_due_by As Date
Public fr_escalted As Boolean
Public fwd_emails() As String
Public group_id As String
Public is_escalated As Boolean
Public name As String
Public phone As String
Public priority As Integer
Public reply_cc_emails() As String
Public requester_id As String
Public responder_id As String
Public source As String
Public spam As Boolean
Public status As Integer
Public subject As String
Public tags() As String
Public to_emails() As String
Public twitter_id As String
Public type As String
Public created_at As Date
Public updated_at As Date
End Class
Dim iJob = Integer = 7815 ' (This is an existing Ticket)
Dim uTicket = New FreshDesk_Ticket
With uTicket
.status = 5
End With
Dim sResult As String = JsonConvert.SerializeObject(uTicket)
Dim uFDConnection = New RestClient(uRequestUri)
uFDConnection.Authenticator = New HttpBasicAuthenticator(sAPIKey, "")
uFDConnection.AddDefaultHeader("Accept", "application/json")
uFDConnection.AddDefaultHeader("Content-Type", "application/json; charset=utf-8")
Dim uRequest = New RestRequest("/api/v2/tickets/" & iJobID.ToString, Method.POST)
uRequest.RequestFormat = DataFormat.Json
uRequest.AddHeader("Accept", "application/json")
uRequest.AddHeader("Content-Type", "application/json")
uRequest.AddParameter("application/json", sResult, ParameterType.RequestBody)
Dim uResponse As RestResponse = uFDConnection.Execute(uRequest)
It fails with the following error:
"StatusCode: MethodNotAllowed, Content-Type: application/json; charset=utf-8, Content-Length: 95)"
Content: "{""message"":""POST method is not allowed. It should be one of these method(s): GET, PUT, DELETE""}"
ContentEncoding: ""
ContentLength: 95
ContentType: "application/json; charset=utf-8"
Cookies: Count = 1
ErrorException: Nothing
ErrorMessage: Nothing
Headers: Count = 16
RawBytes: {Length=95}
Request: {RestSharp.RestRequest}
ResponseStatus: Completed {1}
ResponseUri: {https://xxx.freshdesk.com/api/v2/tickets/7815}
Server: ""
StatusCode: MethodNotAllowed {405}
StatusDescription: "Method Not Allowed"
If I remove the / between tickets and 7815 (the ticket number) I get this
"StatusCode: NotFound, Content-Type: application/json; charset=utf-8, Content-Length: -1)"
Content: " "
ContentEncoding: ""
ContentLength: -1
ContentType: "application/json; charset=utf-8"
Cookies: Count = 1
ErrorException: Nothing
ErrorMessage: Nothing
Headers: Count = 15
RawBytes: {Length=1}
Request: {RestSharp.RestRequest}
ResponseStatus: Completed {1}
ResponseUri: {https://xxx.freshdesk.com/api/v2/tickets7815}
Server: ""
StatusCode: NotFound {404}
StatusDescription: "Not Found"
Can anyone stop my error ?