반응형

dependencies

<dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy-all</artifactId>
    <version>2.4.8</version>
</dependency>
<dependency>
    <groupId>org.apache.ivy</groupId>
    <artifactId>ivy</artifactId>
    <version>2.4.0</version>
</dependency>

groovy script 코드 작성

  • 경로 : <프로젝트> /.script/request.groovy
@Grapes([
    @Grab(group = 'org.apache.httpcomponents', module = 'httpclient', version = '4.5.10'),
    @Grab(group = 'commons-logging', module = 'commons-logging', version = '1.1.1')
])
import org.apache.http.Header
import org.apache.http.client.methods.CloseableHttpResponse
import org.apache.http.client.methods.HttpUriRequest
import org.apache.http.client.methods.RequestBuilder
import org.apache.http.impl.client.CloseableHttpClient
import org.apache.http.impl.client.HttpClients
import org.apache.http.message.BasicHeader
import org.apache.http.util.EntityUtils

def request(params) {
    List<Header> headers = params.headers
        ? params.headers.collect { key, value ->
            new BasicHeader(key, value)
        }
        : []

    CloseableHttpClient client = HttpClients
        .custom()
        .setDefaultHeaders(headers)
        .build()

    HttpUriRequest request = RequestBuilder
        .create(params.method)
        .setUri(params.url)
        .build()

    CloseableHttpResponse response = client.execute(request)

    return EntityUtils.toString(response.getEntity())
}

return request(
    method: method,
    url: url
)

스크립트 실행 코드 작성

import groovy.lang.Binding;
import groovy.lang.GroovyShell;

import java.io.File;
import java.io.IOException;

public class Test {
    public static void main(String[] args) throws IOException {
        Binding binding = new Binding();
        binding.setVariable("method", "GET");
        binding.setVariable("url", "https://naver.com");

        GroovyShell shell = new GroovyShell(binding);
        Object result = shell.evaluate(new File(".script/request.groovy"));

        System.out.println(result);
    }
}
반응형

'Development > Groovy' 카테고리의 다른 글

[Groovy] DSL 예시  (0) 2020.12.28
[Groovy] DSL 공식문서 코드  (0) 2020.12.28
[Groovy] 기본 문법  (0) 2020.12.28
[Groovy] 설치  (0) 2020.12.28

+ Recent posts