What I mean is, it looks like this should be a protected method - http client's responsibilities should not include "encoding form data", as per contract you're designing. The interface should be minimal and include most important methods that relate to the primary responsibility of the contract. The reason why this method was public in the actual class could be a mistake or something not related to the actual function.