2020-05-05 00:43:05 -03:00
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2020, the SerenityOS developers.
|
|
|
|
|
*
|
2021-04-22 05:24:48 -03:00
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
2020-05-05 00:43:05 -03:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include <AK/StringBuilder.h>
|
2021-05-25 09:06:03 -03:00
|
|
|
#include <AK/URL.h>
|
2020-05-05 00:43:05 -03:00
|
|
|
#include <LibWeb/URLEncoder.h>
|
|
|
|
|
|
|
|
|
|
namespace Web {
|
|
|
|
|
|
2021-06-01 09:08:30 -03:00
|
|
|
String urlencode(const Vector<URLQueryParam>& pairs, URL::PercentEncodeSet percent_encode_set)
|
2020-05-05 00:43:05 -03:00
|
|
|
{
|
|
|
|
|
StringBuilder builder;
|
|
|
|
|
for (size_t i = 0; i < pairs.size(); ++i) {
|
2021-06-01 09:08:30 -03:00
|
|
|
builder.append(URL::percent_encode(pairs[i].name, percent_encode_set));
|
2020-05-05 00:43:05 -03:00
|
|
|
builder.append('=');
|
2021-06-01 09:08:30 -03:00
|
|
|
builder.append(URL::percent_encode(pairs[i].value, percent_encode_set));
|
2020-05-05 00:43:05 -03:00
|
|
|
if (i != pairs.size() - 1)
|
|
|
|
|
builder.append('&');
|
|
|
|
|
}
|
|
|
|
|
return builder.to_string();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|