URLEncoder.cpp 674 B

1234567891011121314151617181920212223242526
  1. /*
  2. * Copyright (c) 2020, the SerenityOS developers.
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <AK/StringBuilder.h>
  7. #include <AK/URL.h>
  8. #include <LibWeb/URLEncoder.h>
  9. namespace Web {
  10. String urlencode(const Vector<URLQueryParam>& pairs, URL::PercentEncodeSet percent_encode_set)
  11. {
  12. StringBuilder builder;
  13. for (size_t i = 0; i < pairs.size(); ++i) {
  14. builder.append(URL::percent_encode(pairs[i].name, percent_encode_set));
  15. builder.append('=');
  16. builder.append(URL::percent_encode(pairs[i].value, percent_encode_set));
  17. if (i != pairs.size() - 1)
  18. builder.append('&');
  19. }
  20. return builder.to_string();
  21. }
  22. }