Using Wget: File Download and REST API Interaction Guide
🎯 What You Will Learn in This Guide
This guide teaches practical ways to download files from remote servers and interact with REST API endpoints using the Wget command line tool.
While you learn skills such as managing network interruptions, limiting download speed, running downloads in the background, you will also be able to implement GET, POST, PUT and DELETE calls without installing curl.
🧠 Technical Summary
Main Technical Topic: Wget (Linux/Unix) command line tool
Solved Problem: Downloading files via HTTP/HTTPS/FTP in a stable, interruption-resistant and customizable format; Interacting with REST APIs without installing additional tools.
Steps Followed:
- Wget installation check
- Single/multiple file downloads
- Directory selection (-P), silent mode (-q), rate limiting (--limit-rate), resume (-c), background (-b)
- HTTP methods (--method), headers (--header), data sending (--body-data)
⚙️ 1. Wget Installation
Wget is installed by default in most Linux distributions. If not installed:
sudo apt-get install wget
For installation control:
wget --version
📁 2. File Download Features
📂 Download to Specific Directory
wget -P Dizinler/ https://code.jquery.com/jquery-3.7.1.min.js
The -P parameter specifies the target directory.
🔇 Turn Off Output (-q)
wget -q https://code.jquery.com/jquery-3.7.1.min.js
It completely hides the download output.
📊 Don't Show Only the Progress Bar
wget -q --show-progress https://code.jquery.com/jquery-3.7.1.min.js
In silent mode it only shows the progress bar.
🔁 Resuming Interrupted Download (-c)
wget -c https://buyuk-dosya.ornek.com/yedek.zip
Even if the download is interrupted, it continues where it left off.
🚦 Limiting Download Speed (--limit-rate)
wget --limit-rate=100k https://buyuk-dosya.ornek.com/yedek.zip
Limits speed to preserve bandwidth.
🧩 Background Download (-b)
wget -b https://buyuk-dosya.ornek.com/yedek.zip
Runs long downloads in the background, freeing the terminal.
🌐 3. REST API Interaction
🧱 GET Request
wget -qO- https://jsonplaceholder.typicode.com/posts?_limit=1
It writes the response to the terminal in JSON format.
📨 POST Request
wget -qO- \
--method=post \
--header="Content-Type: application/json" \
--body-data '{"baslik":"Wget Denemesi","icerik":"Örnek içerik","kullaniciId":1}' \
https://jsonplaceholder.typicode.com/posts
✏️ PUT Request
wget -qO- \
--method=put \
--header="Content-Type: application/json" \
--body-data '{"baslik":"Güncellendi","icerik":"Yeni içerik","kullaniciId":1,"id":1}' \
https://jsonplaceholder.typicode.com/posts/1
❌ DELETE Request
wget -qO- \
--method=delete \
https://jsonplaceholder.typicode.com/posts/1
🔐 Authentication Header
TOKEN="ErişimBelirteciniz"
wget -qO- \
--header="Authorization: Bearer $TOKEN" \
--header="Accept: application/json" \
https://api.ornek.com/v1/sunucular
🧩 4. Wget Troubleshooting
| Trouble Symptom | Possible Cause | Solution Command / Tactic |
|---|---|---|
| File.1 saved as .2 | File with the same name exists | wget -O dosya.zip URL |
| Download restarted from 0% | -c is missing or server does not support | wget -c URL |
| Download too slow/unstable | Network contention or server limit | wget --limit-rate=50k and --tries=10 -T 10 |
| 401 Unauthorized error | Token is faulty / expired | --header="Authorization: Bearer $TOKEN" check |
| SSL connection error | Time is wrong or certificate is missing | sudo timedatectl set-ntp true + sudo update-ca-certificates |
| Stuck (no response) | Server not responding | wget -T 10 --tries=5 URL |
⚖️ 5. Wget vs Curl: When to Use Which One?
| Status | Wget | Curl |
|---|---|---|
| Large/batch downloads | ✅ | ⚪ |
| Background or automation | ✅ | ⚪ |
| Simple JSON GET/POST | ✅ | ✅ |
| Enhanced authentication / HTTP2 | ⚪ | ✅ |
| Website mirroring | ✅ | ⚪ |
👉 Rule: "If you are downloading files → Wget. If you are dealing with the API → Curl."
💡 Frequently Asked Questions (FAQ)
1. What does Wget do if the connection drops?
-c (continue) continues the download from where it left off.
2. How to add multiple headers in an API call?
A separate --header is used for each.
3. Where does Wget keep log files?
By default it writes to the wget-log file.
4. How do I monitor background downloads?
Instant monitoring can be done with the tail -f wget-log command.
5. Is it safe to use Wget instead of Curl?
Yes, it is especially suitable for file downloads and simple REST API operations.
🚀 Result
In this guide, you learned how Wget is a powerful tool for both file downloads and REST API calls. You can use your terminal more efficiently with interruption-resistant, speed-limited, background-supported operations.
💡 You can optimize your automation and API integration processes immediately by using these techniques in the GenixNode environment!

