Given the current implementation:
requestBodyFor: aZincRequest ^ aZincRequest entity
you get a ZnEntity subclass back, not a String which WARequest>>#setBody: seems to expect.
As you certainly known, many different kinds of things could be uploaded in a POST, depending on the mime type, some of the important ones are in the subclasses of ZnEntity. I don't think a general conversion to String is possible, unless the idea is that that String should contain the byte representation of what got posted.
Seaside expects a string containing the byte representation of what got posted.
The #contents method does try to return something useful (sometimes higher level Smalltalk objects).
BTW, what is the difference between #requestBodyFor: and #requestFieldsFor: ?
Have a look at the Kom adaptor: requestFieldsFor: aNativeRequest | fields | fields := WARequestFields new. aNativeRequest isPostRequest ifTrue: [ self postFieldsOf: aNativeRequest into: fields ]. ^ fields requestBodyFor: aNativeRequest ^ aNativeRequest rawRequestContents Lukas