HTTP Get request not storing result


#1

1) Give a description of the problem
HTTP get requests are not storing information in $response. This worked in the past and at some point stopped working. I don’t know when, probably about a year ago.
I submit a get request to accuweather to get the one hour temperature forecast. This runs every hour.
The get request goes through. The httpstatuscode is 200. On the accuweather website where the API request statistics are, I can see that the requests are reaching accuweather.

But $response only has a value of [:]

I am able to browse directly to the url and see the response at this URL (with the correct API Key). All of the weather details are returned as expected.
https://dataservice.accuweather.com/forecasts/v1/hourly/1hour/[LOCATION KEY OMITTED]?apikey=[API KEY OMITTED]&details=true

2) What is the expected behaviour?
I submit a get request to Accuweather and the response should be stored in response.

3) What is happening/not happening?
The get requests succeeds. But the variable $response that is supposed to store the response is empty.

**4) Post a Green Snapshot of the piston!
(UPLOAD YOUR IMAGE HERE
Here’s the current version of the app. There’s a box around the diagnostic section I’m using for testing, which is what the log below will show. The rest of the app is the automatic section that runs hourly to update the global variables I have for storing the weather.

5) Attach logs after turning logging level to Full
I edited the URLs by adding a space because the forum flagged it for too many links.

7/12/2022, 11:52:11 AM +847ms
+0ms ╔Received event [Home].wc_async_reply = httpRequest with a delay of 0ms
+61ms ║RunTime Analysis CS > 17ms > PS > 5ms > PE > 39ms > CE
+63ms ║Runtime (45487 bytes) successfully initialized in 5ms (v0.3.113.20210203) (62ms)
+64ms ║╔Execution stage started
+72ms ║║Cancelling statement #16’s schedules…
+78ms ║║Calculating (string) Accuweather Response: + (string) >> (string) Accuweather Response:
+81ms ║║Accuweather Response:
+82ms ║║Executed virtual command log (2ms)
+87ms ║║Calculating (string) Status Code: + (string) 200 >> (string) Status Code: 200
+90ms ║║Status Code: 200
+91ms ║║Executed virtual command log (1ms)
+96ms ║║Calculating (string) Accuweather Whole Response: + (string) [:] >> (string) Accuweather Whole Response: [:]
+100ms ║║Accuweather Whole Response: [:]
+101ms ║║Executed virtual command log (2ms)
+106ms ║║Calculating (string) Content Type: + (string) >> (string) Content Type:
+110ms ║║Content Type:
+110ms ║║Executed virtual command log (1ms)
+115ms ║╚Execution stage complete. (50ms)
+117ms ║Setting up scheduled job for Tue, Jul 12 2022 @ 11:55:05 AM PDT (in 173s), with 1 more job pending
+127ms ╚Event processed successfully (128ms)
7/12/2022, 11:52:11 AM +432ms
+1ms ╔Received event [Home].test = 1657651931430 with a delay of 2ms
+68ms ║RunTime Analysis CS > 17ms > PS > 8ms > PE > 43ms > CE
+71ms ║Runtime (45478 bytes) successfully initialized in 8ms (v0.3.113.20210203) (69ms)
+72ms ║╔Execution stage started
+78ms ║║Cancelling statement #5’s schedules…
+87ms ║║Executed virtual command setVariable (4ms)
+94ms ║║Calculating (string) https ://dataservice.accuweather.com/forecasts/v1/hourly/1hour/ + (string) [LOCATION KEY OMITTED] >> (string) https ://dataservice.accuweather.com/forecasts/v1/hourly/1hour/[LOCATION KEY OMITTED]
+110ms ║║Sending external web request to: dataservice.accuweather.com/forecasts/v1/hourly/1hour/[LOCATION KEY OMITTED]
+115ms ║║Executed virtual command httpRequest (14ms)
+123ms ║║Requesting a wake up for Tue, Jul 12 2022 @ 11:52:35 AM PDT (in 24.0s)
+143ms ║╚Execution stage complete. (71ms)
+146ms ║Setting up scheduled job for Tue, Jul 12 2022 @ 11:52:35 AM PDT (in 23s), with 2 more jobs pending
+157ms ╚Event processed successfully (157ms)

Thank you.


#2

I just created a piston yesterday that stores information in $response. So I know it works. I also know that info does not store there indefinitely.

Maybe you would want to create a separate test piston to check what’s occurring? Have it do nothing but make the GET request, then a second later copy the entirety of $response to a string variable. That way you can check the process itself to ensure it’s working.