In the previous post we showed how to use the dio
lib in Dart to send http request, this one we will show an example of using the raw Socket
object to send a http GET request.
import 'dart:convert'; import 'dart:io'; void main() async { var socket = await Socket.connect("httpbin.org", 80); socket.writeln("GET /get HTTP/1.1"); socket.writeln("Host:httpbin.org"); socket.writeln("Connection:close"); socket.writeln(); // send request await socket.flush(); // now get response content and decode it with utf-8 String resp = await utf8.decoder.bind(socket).join(); await socket.close(); print(resp); }
Run it:
$ dart main.dart HTTP/1.1 200 OK Date: Sat, 18 Dec 2021 04:12:20 GMT Content-Type: application/json Content-Length: 197 Connection: close Server: gunicorn/19.9.0 Access-Control-Allow-Origin: * Access-Control-Allow-Credentials: true { "args": {}, "headers": { "Host": "httpbin.org", "X-Amzn-Trace-Id": "Root=1-61bd5fa4-17f8006279006770433cc1ec" }, "origin": "67.83.127.85", "url": "http://httpbin.org/get" }
Top comments (1)
YOU're awesome bro. I could hug you! Saved my 8 hours