public static String createQueryString(Map<String, Object> options) {
        final Set<String> keySet = options.keySet();
        return createQueryString(keySet.toArray(new String[0]), options, true);
    }
@Test
    public void testPlusInQuery() {
        Map<String, Object> map = new HashMap<>();
        map.put("param1", "+447777111222");
        String q = URISupport.createQueryString(map);
        assertEquals("param1=%2B447777111222", q);

        // will be double encoded however
        map.put("param1", "%2B447777111222");
        q = URISupport.createQueryString(map);
        assertEquals("param1=%252B447777111222", q);
    }