A Reminder About CFHTTP and JSON

If you’re using this to retrieve JSON:

    <cfhttp 
        authtype="basic" 
        username=#UserName# 
        password=#APIkey#
        url="https://api.example.com/v2/getThings?page=1&page_size=10"
    >

And find your response is JSON wrapped in a bare-bones HTML document, rather than just the JSON you were expecting, you might need to add a cfhttpparam accept tag to specifically reference application/json, like so:

    <cfhttp 
        authtype="basic" 
        username=#UserName# 
        password=#APIkey#
        url="https://api.example.com/v2/getThings?page=1&page_size=10"
    >
        <cfhttpparam type="header" name="Accept" value="application/json">
    </cfhttp>

New Github repo: URLParams

I spent more time than I’d have liked last week fixing an issue related to the intermittently incorrect appending of UTM parameters to URLs. Basically, the code worked fine if the link was “basic”, but if it already had  parameters, a second question mark would get added. Since URLs cannot have two question marks, the link would break.

Adding parameters to links sounds simple, until you “roll your own code” and discover issues like– making sure your parameters are URL encoded, and checking to see if the link already has parameters, etc. I decided to capture these hard-won lessons in a JavaScript class called URLParam, and it’s freely available at GitHub.  (It’s worth mentioning– although ES6 classes enjoy wide support across Chrome, Firefox, Edge, Safari, etc., they are not supported in any version of Internet Explorer.)

I hope you’ll find this useful– both in the sense of finishing a coding task faster, and having fewer issues to resolve after deployment.