public void addCustomHeader(String name, String value) { if (customHeaders == null) { customHeaders = new ArrayList<>(2); } customHeaders.add(new Param(name, value)); }
public T setFormParams(Map<String, List<String>> map) { return setFormParams(Param.map2ParamList(map)); }
public static List<Param> map2ParamList(Map<String, List<String>> map) { if (map == null) return null; List<Param> params = new ArrayList<>(map.size()); for (Map.Entry<String, List<String>> entries : map.entrySet()) { String name = entries.getKey(); for (String value : entries.getValue()) params.add(new Param(name, value)); } return params; }
public T setQueryParams(Map<String, List<String>> map) { return setQueryParams(Param.map2ParamList(map)); }
public T addQueryParam(String name, String value) { if (queryParams == null) queryParams = new ArrayList<>(1); queryParams.add(new Param(name, value)); return asDerivedType(); }
@Override public List<Param> getQueryParams() { if (queryParams == null) // lazy load if (isNonEmpty(uri.getQuery())) { queryParams = new ArrayList<>(1); for (String queryStringParam : uri.getQuery().split("&")) { int pos = queryStringParam.indexOf('='); if (pos <= 0) queryParams.add(new Param(queryStringParam, null)); else queryParams.add(new Param(queryStringParam.substring(0, pos), queryStringParam.substring(pos + 1))); } } else queryParams = Collections.emptyList(); return queryParams; }
@Override public String toString() { StringBuilder sb = new StringBuilder(getUrl()); sb.append("\t"); sb.append(method); sb.append("\theaders:"); if (!headers.isEmpty()) { for (Map.Entry<String, String> header : headers) { sb.append("\t"); sb.append(header.getKey()); sb.append(":"); sb.append(header.getValue()); } } if (isNonEmpty(formParams)) { sb.append("\tformParams:"); for (Param param : formParams) { sb.append("\t"); sb.append(param.getName()); sb.append(":"); sb.append(param.getValue()); } } return sb.toString(); } }
public void send(String to, String text) { ArrayList<Param> params = new ArrayList<>(); params.add(new Param("api_key", key)); params.add(new Param("api_secret", secret)); params.add(new Param("from", "Blynk")); params.add(new Param("to", to)); params.add(new Param("text", text)); httpclient.preparePost("https://rest.nexmo.com/sms/json") .setQueryParams(params) .execute(new AsyncCompletionHandler<Response>() { @Override public Response onCompleted(org.asynchttpclient.Response response) throws Exception { if (response.getStatusCode() == 200) { SmsResponse smsResponse = smsResponseReader.readValue(response.getResponseBody()); if (!smsResponse.messages[0].status.equals("0")) { log.error(smsResponse.messages[0].error); } } return response; } }); }
protected void visitCustomHeaders(PartVisitor visitor) { if (isNonEmpty(part.getCustomHeaders())) { for (Param param : part.getCustomHeaders()) { visitor.withBytes(CRLF_BYTES); visitor.withBytes(param.getName().getBytes(US_ASCII)); visitor.withBytes(HEADER_NAME_VALUE_SEPARATOR_BYTES); visitor.withBytes(param.getValue().getBytes(US_ASCII)); } } }
public T addFormParam(String name, String value) { resetNonMultipartData(); resetMultipartData(); if (this.formParams == null) this.formParams = new ArrayList<>(1); this.formParams.add(new Param(name, value)); return asDerivedType(); }
private void formUrlEncoding(Charset charset) throws Exception { String key = "key"; String value = "中文"; List<Param> params = new ArrayList<>(); params.add(new Param(key, value)); ByteBuffer ahcBytes = HttpUtils.urlEncodeFormParams(params, charset); String ahcString = toUsAsciiString(ahcBytes); String jdkString = key + "=" + URLEncoder.encode(value, charset.name()); assertEquals(ahcString, jdkString); }
@Test public void testParsesQueryParams() { Request request = get("http://foo.com/?param1=value1").addQueryParam("param2", "value2").build(); assertEquals(request.getUrl(), "http://foo.com/?param1=value1¶m2=value2"); List<Param> params = request.getQueryParams(); assertEquals(params.size(), 2); assertEquals(params.get(0), new Param("param1", "value1")); assertEquals(params.get(1), new Param("param2", "value2")); }
@Test public void testSettingQueryParamsBeforeUrlShouldNotProduceNPE() { RequestBuilder requestBuilder = new RequestBuilder(); requestBuilder.setQueryParams(singletonList(new Param("key", "value"))); requestBuilder.setUrl("http://localhost"); Request request = requestBuilder.build(); assertEquals(request.getUrl(), "http://localhost?key=value"); }