vibe.d beta banner
get vibe.d
0.10.0

Asynchronous I/O that doesn’t get in your way, written in D

formEncode - multiple declarations

Function formEncode

Encodes a Key-Value map into a form URL encoded string.

void formEncode(R, T) (
  auto ref R dst,
  T map,
  char sep = '&'
)
if (isFormMap!T && isOutputRange!(R, char));

Writes to the OutputRange an application/x-www-form-urlencoded MIME formatted string, ie. all spaces ' ' are replaced by the '+' character

Parameters

NameDescription
dst The destination OutputRange where the resulting string must be written to.
map An iterable key-value map iterable with foreach(string key, string value; map).
sep A valid form separator, common values are '&' or ';'

Example

The following example demonstrates the use of formEncode with a json map, the ordering of keys will be preserved in Bson and DictionaryList objects only.

import std.array : Appender;
string[string] map;
map["numbers"] = "123456789";
map["spaces"] = "1 2 3 4 a b c d";

Appender!string app;
app.formEncode(map);
assert(app.data == "spaces=1+2+3+4+a+b+c+d&numbers=123456789" ||
	   app.data == "numbers=123456789&spaces=1+2+3+4+a+b+c+d");

Function formEncode

Encodes a Key-Value map into a form URL encoded string.

string formEncode(T) (
  T map,
  char sep = '&'
)
if (isFormMap!T);

string formEncode(T, Args...) (
  T map,
  char sep = '&'
);

Returns an application/x-www-form-urlencoded MIME formatted string, ie. all spaces ' ' are replaced by the '+' character

Parameters

NameDescription
map An iterable key-value map iterable with foreach(string key, string value; map).
sep A valid form separator, common values are '&' or ';'
Authors

Sönke Ludwig, Jan Krüger

Copyright

© 2012-2014 Sönke Ludwig

License

Subject to the terms of the MIT license, as written in the included LICENSE.txt file.