Web requests in CURL vs EasyMorph

Sometimes, a request in CURL works, but in EasyMorph, the seemingly same request doesn't. This is because EasyMorph does automatic URL encoding, while CURL doesn't.

In the HTTP protocol standard, URLs don't allow certain characters, for instance, spaces. Plus is the replacement for the space character in URLs, as per the standard. CURL sends unencoded (low-level) requests, so you have to encode them manually. When you send "600+Brantford" in a query parameter in CURL, you're actually sending "600 Brantford", but because CURL does not do encoding, you need to manually do the encoding first, i.e. replace " " with "+" in CURL. Hence, "600+Brantford" in CURL.

EasyMorph does encode URLs automatically. Therefore, in EasyMorph, you specify what you actually need to send (in this case, "600 Brantford", notice the absence of the plus), not the low-level encoded value like in CURL. EasyMorph will automatically transform it to the low-level request, as necessary.