Are you getting an error message? If so what?
Are you updating one record, or multiple records?
If yo are updating only one record, are you using the endpoint for the record or the endpoint for the table?
If you are using the endpoint for the table, it looks like your body is missing the
records key as described in the API documentation.
Glad you got it working.
Is there a reason why you switched to doing the JSON encoding manually? That step is unrelated to including the top level “records” object key, which was your main problem. Depending on the names and values of your fields, you may eventually get values that will be very difficult to encode manually.