// retoor <retoor@molodetz.nl>
import "net" for Socket
import "scheduler" for Scheduler
class HttpClient {
static get(host, port, path) {
System.print("Connecting to %(host):%(port)...")
var socket = Socket.connect(host, port)
var request = "GET %(path) HTTP/1.1\r\n" +
"Host: %(host)\r\n" +
"User-Agent: Wren-CLI\r\n" +
"Connection: close\r\n" +
"\r\n"
System.print("Sending request...")
socket.write(request)
System.print("Waiting for response...")
var response = ""
while (true) {
var chunk = socket.read()
if (chunk == null) break
response = response + chunk
}
socket.close()
return response
}
}
// Example usage: Fetching from a local server or a known public IP
// Note: This implementation is for raw IP/DNS if supported by uv_tcp_connect.
// Since our net.c uses uv_ip4_addr, we use localhost for the example.
var host = "127.0.0.1"
var port = 8080 // Try to connect to our own http_server example
var path = "/"
while(true) {
var result = HttpClient.get(host, port, path)
System.print("\n--- Response Received ---
")
System.print(result)
}