'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 |
|---|
