Downloading a web page

How to:

Here’s the nitty-gritty: make your Arduino surf the web and grab what you need.

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

const char* ssid = "yourSSID";
const char* password = "yourPASSWORD";

void setup() {
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    Serial.println("Connecting to WiFi...");

  HTTPClient http;
  http.begin(""); // Swap with your URL
  int httpCode = http.GET();
  if (httpCode > 0) {
    if (httpCode == HTTP_CODE_OK) {
      String payload = http.getString();
  } else {
    Serial.printf("Error in HTTP request: %s\n", http.errorToString(httpCode).c_str());

void loop() {
  // Nothing here for now.

Power it up, and you should see the webpage’s HTML in the Serial Monitor. Remember, you’ll need the ESP8266 Wi-Fi module and a connection.

Deep Dive

Once upon a time, Arduinos were simple offline creatures. Then came shields and modules that connected them to the big bad web. ESP8266 is one such magical gizmo, turning your Arduino into an internet surfer.

Alternatives? You bet. There’s the ESP32, Ethernet Shield, and others for the same job.

Quality of your internet connection, power supply robustness, and even the time of day could tip the scales on how well your Arduino downloads that page. We’re really plugging into more factors than just writing slick code.

See Also

Dig more? Check these out: