Sample code for 30+ languages & platforms
Dart

Initialize an HTTP Request from a URL

See more HTTP Examples

Demonstrates how to initialize an HTTP request object from a URL.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  final req = CkHttpRequest();

  // Loads the HTTP request object from a URL
  req.setFromUrl('https://www.youtube.com/watch?v=fAZdTchQePc&t=45s');

  // The verb will be "GET"
  print('verb = ${req.httpVerb}');
  // The path will be "/watch"
  print('path = ${req.path}');

  // The output of this loop will be
  // 0) v: fAZdTchQePc
  // 1) t: 45s
  final numParams = req.numParams;
  for (var i = 0; i < numParams; i++) {
    print('$i) ${req.getParamName(i)}: ${req.getParamValue(i)}');
  }

  // View the request that would be sent if HttpSReq is called.
  // The HTTP request will be a GET that looks like this:
  // 
  //     GET /watch?v=fAZdTchQePc&t=45s HTTP/1.1
  //     Host: domain
  // 
  // Note: The HOST header will automatically get filled in with the actual domain when HttpSReq is called.

  print(req.generateRequestText());

  // We can add additional params
  req.addParam('artist', 'Richard Bona');
  req.addParam('musicType', 'Jazz');
  req.addParam('festival', 'Estival Jazz Lugano');
  req.addParam('year', '2008');

  // Now examine the request that would be sent
  // 
  //     GET /watch?v=fAZdTchQePc&t=45s&artist=Richard%20Bona&musicType=Jazz&festival=Estival%20Jazz%20Lugano&year=2008 HTTP/1.1
  //     Host: domain
  // 
  print(req.generateRequestText());

  // We can remove a parameter:
  req.removeParam('t');
  print(req.generateRequestText());

  // What happens if we change the request from a GET to a POST?
  req.httpVerb = 'POST';
  // The request will now look like this:
  // 
  //    POST /watch HTTP/1.1
  //    Host: domain
  //    Content-Length: 93
  //    
  //    v=fAZdTchQePc&artist=Richard%20Bona&musicType=Jazz&festival=Estival%20Jazz%20Lugano&year=2008
  // 
  print(req.generateRequestText());

  // What happens if we make it a multipart/form-data?
  req.contentType = 'multipart/form-data';
  // Now the POST looks like this:
  //    
  //    POST /watch HTTP/1.1
  //    Content-Type: multipart/form-data; boundary=------------020906020106050705030807
  //    Host: domain
  //    Content-Length: 545
  //    
  //    --------------020906020106050705030807
  //    Content-Disposition: form-data; name="v"
  //    
  //    fAZdTchQePc
  //    --------------020906020106050705030807
  //    Content-Disposition: form-data; name="artist"
  //    
  //    Richard Bona
  //    --------------020906020106050705030807
  //    Content-Disposition: form-data; name="musicType"
  //    
  //    Jazz
  //    --------------020906020106050705030807
  //    Content-Disposition: form-data; name="festival"
  //    
  //    Estival Jazz Lugano
  //    --------------020906020106050705030807
  //    Content-Disposition: form-data; name="year"
  //    
  //    2008
  //    --------------020906020106050705030807--

  print(req.generateRequestText());
}