개발환경

armeria Webclient post Form

toogari 2023. 6. 1. 15:51
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 처리 가능.