'Getting 500 error when sending C# web request

I am trying to make a api call using UnityWebRequest like this:

UnityWebRequest www = UnityWebRequest.Put(prodLink + "/clubs/members/exchangedscorecards", JsonConvert.SerializeObject(scorecard));
www.method = "POST";
www.SetRequestHeader("accept", "application/json");
www.SetRequestHeader("content-type", "application/json");
www.SetRequestHeader("Authorization", "basic dslkjiosdfIUijiJijojlkjIjojliJIojhuguyg87876==");

yield return www.SendWebRequest();

if (www.result != UnityWebRequest.Result.Success)
{
    Debug.Log(www.error);
}
else
{
    // Show results as text
    Debug.Log(www.downloadHandler.text);

    UnityMainThread.wkr.AddJob(() =>
    {
        OnGetDGUCourseResponse(new ResponseData()
        {
            hasErrors = false
        });
    });

}

I am getting a 500 Internal Server Error.

I am using the same api call with other requests to the same api and it works just fine, it is only when using POST I am having issues.

When doing the same from Postman everything works just fine? In Postman I am seeting the BODY to JSON and adds the exact same json.

Postman request:

curl --location --request POST 'https://some.api.io/[email protected]/clubs/members/exchangedscorecards' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: basic dslkjiosdfIUijiJijojlkjIjojliJIojhuguyg87876==' \
--data-raw '[{
   "CreateDateTime":"20220502T000000",
   "ExternalID":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
   "HCP":"34000",
   "PHCP":"4",
   "Course":{
      "CourseID":"XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "ExternalID":"XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "ClubID":"XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "Name":"SOME GOLF CLUB",
      "Country":"DK",
      "TeeID":"XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "TeeName":"57",
      "TeePar":"72",
      "TeeRating":"721000",
      "TeeSlope":"128",
      "Holes":[
         {
            "Number":1,
            "Index":18,
            "Par":3,
            "Length":124,
            "ExtraStrokes":0
         },
         {
            "Number":2,
            "Index":2,
            "Par":4,
            "Length":416,
            "ExtraStrokes":1
         },
         {
            "Number":3,
            "Index":12,
            "Par":4,
            "Length":296,
            "ExtraStrokes":0
         },
         {
            "Number":4,
            "Index":6,
            "Par":4,
            "Length":358,
            "ExtraStrokes":0
         },
         {
            "Number":5,
            "Index":4,
            "Par":4,
            "Length":391,
            "ExtraStrokes":1
         },
         {
            "Number":6,
            "Index":8,
            "Par":4,
            "Length":350,
            "ExtraStrokes":0
         },
         {
            "Number":7,
            "Index":16,
            "Par":4,
            "Length":269,
            "ExtraStrokes":0
         },
         {
            "Number":8,
            "Index":10,
            "Par":5,
            "Length":439,
            "ExtraStrokes":0
         },
         {
            "Number":9,
            "Index":14,
            "Par":3,
            "Length":165,
            "ExtraStrokes":0
         },
         {
            "Number":10,
            "Index":9,
            "Par":4,
            "Length":250,
            "ExtraStrokes":0
         },
         {
            "Number":11,
            "Index":13,
            "Par":4,
            "Length":315,
            "ExtraStrokes":0
         },
         {
            "Number":12,
            "Index":1,
            "Par":4,
            "Length":384,
            "ExtraStrokes":1
         },
         {
            "Number":13,
            "Index":11,
            "Par":5,
            "Length":432,
            "ExtraStrokes":0
         },
         {
            "Number":14,
            "Index":17,
            "Par":3,
            "Length":150,
            "ExtraStrokes":0
         },
         {
            "Number":15,
            "Index":3,
            "Par":5,
            "Length":491,
            "ExtraStrokes":1
         },
         {
            "Number":16,
            "Index":7,
            "Par":4,
            "Length":282,
            "ExtraStrokes":0
         },
         {
            "Number":17,
            "Index":5,
            "Par":5,
            "Length":444,
            "ExtraStrokes":0
         },
         {
            "Number":18,
            "Index":15,
            "Par":3,
            "Length":140,
            "ExtraStrokes":0
         }
      ]
   },
   "Round":{
      "HolesPlayed":18,
      "RoundType":1,
      "StartTime":"20220502T000000",
      "TournamentName":null,
      "TournamentRoundNumber":0
   },
   "Result":{
      "Strokes":[
         3,
         5,
         4,
         5,
         5,
         3,
         3,
         4,
         3,
         4,
         5,
         5,
         4,
         5,
         6,
         4,
         5,
         3
      ],
      "TotalStrokes":76,
      "NetDoubleBogeyGross":76,
      "IsQualifying":false
   },
   "Player":{
      "FullName":"My Name",
      "HomeClubName":"Some Golf Club",
      "HomeClubCountry":"DK",
      "LifeTimeID":"147898-001",
      "UnionID":"366-1597"
   },
   "Marker":{
      "FullName":"My Marker",
      "HomeClubName":"Some Other Golf Club",
      "LifeTimeID":"123456-001",
      "UnionID":"366-1514"
   }
}]'

Is there a difference in how C#/Unity handles this and Postman?

Really hoping for help and thanks in advance :-)



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source