לפני חודשיים

@צדיק-תמים

POSTMAN:
curl --location --request POST 'https://www.call2all.co.il/ym/api/UploadTextFile' \
--header 'Content-Type: application/json' \
--data-raw '{
    "token": "<username>:<password>",
    "what": "ivr2:14/text_file.ini",
    "contents": "Some text message"
}'

c#:
curl -X POST -d '{"token":"<username>:<password>","what":"ivr2:14/text_file.ini","contents":"Some test message"}' https://www.call2all.co.il/ym/api/UploadTextFile

תגוובה ב-POSTMAN:

{
    "responseStatus": "OK",
    "message": "ok",
    "yemotAPIVersion": 6
}

תגובה ב-C#:

Response: {"yemotAPIVersion":6,"responseStatus":"EXCEPTION","message":"IllegalStateException(session token is required)"

אז ככה, ב-C# ברגע שאתה משייך flag של -d ל-curl, זה אוטומטית יוצר בקשה עם:

Content-Type: application/x-www-form-urlencoded

וזה לא נשלח עם:

Content-Type: application/json

ה-body שנשלח לשרת של ימות הוא בפורמט json בעוד שה-content-type בפורמט של:
x-url-encoded.

לאחר מכן, ניסיתי לכפות על ה-httpClient לשים header של Content-Type: application/json, אך הוא מתעלם מזה....

ומכאן נובעת השגיאה, הבעיה היא לא בימות המשיח, אלא באופן בניית ה-CURL ב-C#, שה-body שנשלח לא תואם ל-content-type ב-header.