반응형
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 |