Your use of a QUrl and addEncodedQueryItem and converting the results to a string certainly seem weird to me.
And are you sure the server accepts a PUT request?

Can you debug the exact data you send to see if it is really what you want to send?