How to Simulate Long HTTP Requests
It happens less frequently these days but there are times when we need to accommodate for a HTTP request timing out. The service could be down, under heavy traffic, or just poorly coded, or any host of other issues.
Whenever I need to simulate a long HTTP request, I use a bit of PHP to make it happen:
<?php
// Don't resolve this request for 5 seconds
sleep(5);
// A generic response
echo 'This is the response!';
// ... or hit a URL to make the case more realistic
echo file_get_contents('https://website.tld/endpoint');
?>
With that script created, I make PHP start a server so I can make the request locally:
php -S localhost:8000
Now I can hit http://localhost:8000 and get the long request I want!
There are a number of ways you can accomplish these long form requests but this has always been a favorite of mine!
![Creating Scrolling Parallax Effects with CSS]()
Introduction
For quite a long time now websites with the so called "parallax" effect have been really popular.
In case you have not heard of this effect, it basically includes different layers of images that are moving in different directions or with different speed. This leads to a...
![Animated 3D Flipping Menu with CSS]()
CSS animations aren't just for basic fades or sliding elements anymore -- CSS animations are capable of much more. I've showed you how you can create an exploding logo (applied with JavaScript, but all animation is CSS), an animated Photo Stack, a sweet...
![Upload Photos to Flickr with PHP]()
I have a bit of an obsession with uploading photos to different services thanks to Instagram. Instagram's iPhone app allows me to take photos and quickly filter them; once photo tinkering is complete, I can upload the photo to Instagram, Twitter, Facebook, and...
![Introducing MooTools ElementSpy]()
One part of MooTools I love is the ease of implementing events within classes. Just add Events to your Implements array and you can fire events anywhere you want -- these events are extremely helpful. ScrollSpy and many other popular MooTools plugins would...
That’s cool! Thanks for the tip.
I could see having it take a query param to set the sleep time arbitrarily for different scenarios you’re simulating.
Thanks David always love your content.
Although in this particular case i fail to understand a practical use, could you share an example?
thanks !
And here is concise way to do it in NodeJs, the server will wait for 3 seconds before response:
const http = require('http') const server = http.createServer((req, res) => { setTimeout(() => { res.writeHead(200) res.end('Hello, World!') }, 3000) }) server.listen(8080)