Rest SoapUI上带有主体的选项方法(测试)

Rest SoapUI上带有主体的选项方法(测试),rest,groovy,soapui,httpbuilder,Rest,Groovy,Soapui,Httpbuilder,我一直在寻找如何在SoapUI上使用groovy调用带有主体参数的选项方法。我读到这是可能的,但无论难以置信与否,我还没有找到一个例子。 我试过这个: import groovyx.net.http.HTTPBuilder; public class HttpclassgetrRoles { static void main(String[] args){ def message = '{"message":"this is a message"}'

我一直在寻找如何在SoapUI上使用groovy调用带有主体参数的选项方法。我读到这是可能的,但无论难以置信与否,我还没有找到一个例子。
我试过这个:

    import groovyx.net.http.HTTPBuilder;
    public class HttpclassgetrRoles {
     static void main(String[] args){
         def message = '{"message":"this is a message"}'
         def baseUrl = new URL('https://MY-URL')
         baseUrl.getOutputStream().write(message);

         HttpURLConnection connection = (HttpURLConnection) baseUrl.openConnection();
         connection.addRequestProperty("Accept", "application/json")
         connection.with {
           doOutput = true
           requestMethod = 'OPTIONS'
           println content.text
         }

     }
  }
但它不起作用。
另一种方式是:

def options = new URL("https://MY-URL"}'
def message = '{"message":"this is a message"}'
options.setRequestMethod("OPTIONS")
options.setDoOutput(true)
options.setRequestProperty("Content-Type", "application/json")
options.getOutputStream().write(message.getBytes("UTF-8"));
def optionsRC = options.getResponseCode();
println(optionsRC);
if(optionsRC.equals(200)) {
    println(options.getInputStream().getText());
}
但两者都不是。
还有这个:

import org.codehaus.groovy.runtime.StackTraceUtils

import groovyx.net.http.HTTPBuilder
import groovyx.net.http.ParserRegistry
import static groovyx.net.http.Method.GET
import static groovyx.net.http.ContentType.TEXT


def http = new HTTPBuilder('https://MY-URL')

http.option( path : '/complement',
contentType : TEXT,
query : [body:'{"parameter1":"value1"}'] ) { resp, reader ->

println "response status: ${resp.statusLine}"
println 'Headers: -----------'
resp.headers.each { h ->
println " ${h.name} : ${h.value}"
}
println 'Response data: -----'
System.out << reader
println '\n--------------------'
}
import org.codehaus.groovy.runtime.StackTraceUtils
导入groovyx.net.http.HTTPBuilder
导入groovyx.net.http.ParserRegistry
导入静态groovyx.net.http.Method.GET
导入静态groovyx.net.http.ContentType.TEXT
def http=新的HTTPBuilder('https://MY-URL')
选项(路径:'/complete',
contentType:TEXT,
查询:[正文:'{“参数1”:“值1”}]{resp,reader->
println“响应状态:${resp.statusLine}”
println'标题:-------------'
每个{h->
println“${h.name}:${h.value}”
}
println'响应数据&colon;-----'
System.out您应该能够使用库来实现相同的功能

如果您注意到,该方法没有列出。但是,如果您检查存储库的日志,很明显,该库已增强为支持相同的方法

给你:

  • 从git下载源代码
  • 从源代码构建它(因为发布的版本没有选项)
  • 复制SOAPUI_HOME/bin/ext目录下的库
  • 重新启动soapUI工具
使用提供的示例代码


希望这有帮助。

或考虑使用支持支持选项的新支持的HTTBuBurdRe改写。