Canisters can implement http_request.
http_request
I gave a trivial example in Motoko here:
There’s another here:
You can also do the same in Rust:
See also: