I have an application with the following API information. Its giving me a 200 https status and then a 400 status immediately and I dont know what is going on.
This is the error message
0:00:22 : Halo Desktop App Launched
20:00:24 : URL: https://halo.sondelaconsulting.com/auth/token?tenant=sondella
: HTTP Status: 200
: Received Content: {"token_type":"Bearer","access_token":"CfDJ8OWiF1jv5RZNsD-A4dveNXjncE7UBiuII0uyBtPGHj6PdHIFIxXp3FdBohBHggIsY2waD_-ob8QizozQQQh_Mo4x9xDk_xgQ-vQYOXPep0p2nOjcAQwAmn7PITFx3o2dKwtX7ZQnVyPAU4IwWN7EeJLjk-OgKl2itszIyQ3L0nTRbU4fWsu88CYk63f59mo42euxwcXmF_ZlqrEx1VNrB4M3oLR2rr4iCZbEUxe0Wund3XmWr5MZuc6a7Ta0cJ7L8a5ecXk8mTDgHfwuM0Qm4wzlfdqC_oQb0c9rBGI6m4J2O8jmeWWN4vx8FTvcy87KSuyL1rUHYFr42rcUI93kmbFAFFr-v8Ab253_GWtKPjAfvy7r-UgJ6rwt0Jv6FxMqfaHna2d3aPRseumn4xiCkLqWuGpwlVPiyVwSw5scZpXUclc_uE_GG7xZ0vbX9uxbtkF4pZ6Qu8AhJk3qfROm9gZ_BtMYdh1czNiQsGZOq3d14QaG64JP6zBisKcOSxqUKjJq3MxMJGhD8-M2mzxfEnrs_uJd4dPDKWKyXAxGq7W2G4rk39OgXJP6VbjMAB4VRarxpCoN9OMQO8hvkVVF9WGJ73HMi-lu6mUyHETxPEZWEfH88BwtZ7AIiEtAK-lFSqUaNJh9BsFZqr-dqswQKJx-KjNHmB6eQTuTJoeLyuvMOLWAFgZfVWlXtK--bjvwuiVlkEFUHu5Mok6kuIswyfU6wHTMJLIrm6PNFVWvGIkWLIccb19IMvSa2A1ELrRmot4W8SDzC2JND6axDvXfhYW2w7KtV7qjCwgB-E0sILJhoh49-1oMaZqfZirTfKQr4_5OeidaFgSutTLfNPdeC-BiS-7OvAHOYB_3sAfrZMTSs9zmxCbKhAqFTm_pDDpc-rVzA3f_ri7ESGAWhp7fIHjhDvolBNXTwH0KdI6as58rNzklKE3RkuMJlVARPqh56kQMHdXB6uprijhUrVdfWPypBQAxucW7ezO1krnoh4FJoQIn4Yxk9UdFwjRxIpklwtAkFoSy7Bu14AjXE9fYVuyLzgwOV9FtNk55VQYJgLwyRMG_cxEzEhN0dnvLfLDsM9KWHG4FQFvpMoO1Gptp7nRW9sQPGtQrc7qwTb0Xh3fcdyHl9msc0KnlS8xKWtjrbUo5Km6kYLfxyJOx5GZoNmnVrWrx8okq2Uumvh-hfPc2u-Q1665iJMEvey3VvKJYNA4vp7SbixQu5eOXp5ZayuXc6ZXCbjVystDvGHEMFmCAP11HphAHkDs6LQV2Atn90OyD7B6MkcbQgl4FdDL8lE-a32jfBZu4QL2tbE_PJaNVSJi3hpL6738luS-yiBndJiOIgwMZghyRF00Ac8CpIs7-UJ0tg3QYCZhgaCnvJS1Aq9EUoLde4P2U54vZCbLxXZSSHKbNEzji2A04aWaH_qzG1bxB7Rj-tK9-kSycVISrRYYIbwvMdIVbB7HRxruIVSqfn26WQsJbFGb9607Y3zQ8X-oR7gYprYqBZHu22vlG7e65zF5lOsJ8tOm1L63CUKWbeOsKLb0pBuNAjfasIT4T1Ykc4sWjPV-cxX9aajTJyP0sGPTkMwi7rKaOxH4B4a9EI4aX8qro9p4T-deesBOXmckU1y6d7B7067b3fmtt7YpnFZVfEHW8WrnYj9fNGiE2eXOy7LxJHr36rjyHIb2s_Ew0Mn8N-L95w0Y1FerRyglu_BkC-iNP585q6XlbF_qhJAAS_Tn4xbm5XY3hiEX0Fioyjn2cA1cQH8yfKnuJzOCSj9t2a-MS2CjEff02igXg8_inCgdAxwFQ5TOzfv21MxWFQSk1kpa_AOhK9aJrF1LVwdFalj-i1pbnf5EJGeT3MkfrH-ni80kJFPa41_t9SYLXQdEmTOJdWgR0b1hcM46GfKxJLh3fd6DXkZqnnr-NZWaMTNG92LLaJXGSYwSsqT7AQ0kE7sg1ebbYV6gg-Q38nJXGiC1ZH_2OOzMKCaqOiqFBjD4qh7JvRO46B0AunUXnvVvsn5SW5Q6pKQ4bP-O18Biaosau1gWav3XD9QF0DjCWGosGRAoUulcjsJvuj5cGiEgFJR9nD_MH1v3Cziwq6nP1I-Bh2d3p22OQmH81AquMz8Dap3JAJSvavIg","expires_in":3600}
: URL: https://halo.sondelaconsulting.com/api/tickets
: HTTP Status: 400
: Received Content: {"summary":["Cannot deserialize the current JSON object (e.g. {\"name\":\"value\"}) into type 'HaloClassLibrary.Models.Faults[]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.\r\nTo fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List<T>) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object.\r\nPath 'summary', line 1, position 11."]}
20:03:35 : Halo Desktop App Ended
``
I have a URL Connection called APISocket and a contentreceived Event Handler which has this code in
System.DebugLog("URL: " + url)
System.DebugLog("HTTP Status: " + Str(httpStatus))
System.DebugLog("Received Content: " + content)
If httpStatus = 200 Then
//MessageBox("Received content: " + content) ' Debugging line
textArea1.Text = ("Received content: " + content)
If url = "https://halo.sondelaconsulting.com/auth/token?tenant=sondella" Then
Var json As New JSONItem(content)
AccessToken = json.Lookup("access_token", "")
SendPOSTRequestAndCreateTicket()
ElseIf url = "https://halo.sondelaconsulting.com/api/tickets" Then
Var json As New JSONItem(content)
Var ticketID As String = json.Lookup("id", "")
If ticketID <> "" Then
MessageBox("Ticket created successfully! Ticket ID: " + ticketID)
Else
MessageBox("Ticket not created. Check the API response.")
End If
End If
Else
MessageBox("An error occurred: " + Str(httpStatus))
End If
On the submit button I call the following method
SendPOSTRequestAndGetAccessToken()
// Note that the ticket creation will proceed asynchronously once the token is received
Then in that method, I have the following code
// Create JSON payload
Var json As New JSONItem
json.Value("summary") = SummaryTextBox.Text
json.Value("details") = DescriptionTextArea.Text
json.Value("status_id") = 1
json.Value("client_id") = 1
// Set the Authorization header
APISocket.RequestHeader("Authorization") = "Bearer " + AccessToken
// Set the content and Content-Type
APISocket.SetRequestContent(json.ToString, "application/json")
// Send POST request to create a ticket
APISocket.Send("POST", "https://halo.sondelaconsulting.com/api/tickets")
Then in the method called
SendPOSTRequestAndGetAccessToken
I have the following code
Var authUrl As String = "https://halo.sondelaconsulting.com/auth/token?tenant=" + EncodeURLComponent("sondella")
Var data As String
data = "grant_type=client_credentials"
data = data + "&client_id=" + EncodeURLComponent(“ ID CODEGOESHERE)
data = data + "&client_secret=" + EncodeURLComponent(“SECRETGOES HERE ")
APISocket.SetRequestContent(data, "application/x-www-form-urlencoded")
APISocket.Send("POST", authUrl)
When I run the code I get that information above and a 400 error
Any help appreciated