Are you sure you have the HttpDxe driver in your OVMF build?  Looks like you'd need to build with either -D NETWORK_HTTP_ENABLE or -D NETWORK_HTTP_BOOT_ENABLE.

See https://github.com/tianocore/edk2/blob/master/OvmfPkg/README for details on HTTPS.

Brian J. Johnson
Hewlett Packard Enterprise


From: CrossedCarpet [mailto:crossedcarpet@hotmail.com]
Sent: Monday, February 13, 2023 at 2:47 AM
To: devel@edk2.groups.io <devel@edk2.groups.io>
Subject: [edk2-devel] [Help] in Setting up EFI Shell in QEMU to allow for HTTP Requests

Greetings,
I want to create an UEFI App with internet connection.

Before I start developing the code, I wanted to make sure my setup is working properly so that the app can make http requests.
To that end, I spent the last days trying to make the `http` command work in the EFI Shell launched inside QEMU.
I can get the ping command to work properly, but calling:
http httpbin.org/get
Always returns: 
Unable to open http protocol on `eth0` - Unsupported
Unable to download the file `/get` on `eth0` - Unsupported

This is my startup.nsh script to configure the interface:
connect
ifconfig -r eth0
ifconfig -s eth0 dhcp
ifconfig -l eth0

These were my different attempts at invoking Qemu properly:
        -netdev user,id=mynet0,hostfwd=tcp::8080-:80 -device e1000,netdev=mynet0 \
        -netdev user,id=user.0 -device e1000,netdev=user.0 \
        -nic user,ipv6=off,model=e1000,mac=52:54:98:76:54:32 \

And following this guide I tried to setup a tap, but no dice:
        -netdev tap,id=mynet0,ifname=tap0,script=no,downscript=no -device e1000,netdev=mynet0,mac=52:55:00:d1:55:01 \

Have you ever achieved this? What was your setup like?

Thank you for your time.