Output a utf string, then check msg.statusCode in the response message and only allow the ones you want to pass, i.e 200, then pass through a json node.
What data are you getting? Has the error moved to the JSON node? Use a debug to see what is being passed to the JSON node. My guess is your getting html not JSON.
To add to Steve's questions, what are the statusCodes received when working and when down?
How is the catch node set up?
Set all debugs nodes to complete message object
How are you checking for Statuscodes?
I thought you had a basic understanding of node-red standard nodes. You may get some benefit from watching these essentials videos
To the issue.
Add a switch node between the http and the JSON nodes. set property to statusCode and the rule to == 200 the 200 is a number not a string.
I am doing the same, output of httprequest is linked with switch node. but no output is coming, request is not flowing to switch node and getting an exception "JSPN parse error"