How to Simulate Long HTTP Requests

By  on  

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!

Recent Features

  • By
    Introducing MooTools Templated

    One major problem with creating UI components with the MooTools JavaScript framework is that there isn't a great way of allowing customization of template and ease of node creation. As of today, there are two ways of creating: new Element Madness The first way to create UI-driven...

  • By
    How to Create a Twitter Card

    One of my favorite social APIs was the Open Graph API adopted by Facebook.  Adding just a few META tags to each page allowed links to my article to be styled and presented the way I wanted them to, giving me a bit of control...

Incredible Demos

  • By
    Degradable SELECT onChange

    Whenever I go to Google Analytics I notice a slight flicker in the dropdown list area. I see a button appear for the shortest amount of time and the poof! Gone. What that tells me is that Google is making their site function...

  • By
    MooTools Window Object Dumping

    Ever want to see all of the information stored within the window property of your browser? Here's your chance. The XHTML We need a wrapper DIV that we'll consider a console. The CSS I like making this look like a command-line console. The MooTools JavaScript Depending on what you have loaded...

Discussion

  1. 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.

  2. Charlie

    Thanks David always love your content.
    Although in this particular case i fail to understand a practical use, could you share an example?

    thanks !

  3. Dima

    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)
    

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!