import com.linecorp.armeria.client.ClientFactory;
import com.linecorp.armeria.client.WebClient;
import com.linecorp.armeria.common.*;
WebClient webClient = null;
if (ssl) {
ClientFactory clientFactory =
ClientFactory.builder()
.tlsNoVerify()
.build();
webClient = WebClient.builder(uri).factory(clientFactory).build();
} else {
webClient = WebClient.of(uri);
}
RequestHeadersBuilder builder = RequestHeaders.builder(HttpMethod.POST, path);
builder.contentType(MediaType.FORM_DATA);
if (StringUtils.isEmpty(cookie) == false) {
//cookie 설정
builder.addObject(HttpHeaderNames.COOKIE, cookie);
}
if (headers != null && headers.size() > 0) {
//header 설정
for (String key : headers.keySet()) {
builder.add(key, headers.get(key));
}
}
RequestHeaders requestHeaders = builder.build();
// form 데이터 처리.
QueryParams queryParams = QueryParams.builder().add(forms).build();
String queryString = queryParams.toQueryString();
HttpData httpData = HttpData.ofUtf8(queryString);
AggregatedHttpResponse response = webClient.execute(requestHeaders, httpData).aggregate().join();
String msg = response.contentUtf8();
armeria WebClient
ssl tlsNoVerify인 경우
cookie 설정
header 설정
form data 처리 가능.