SoapUI 上带有正文的选项方法(测试)
Options method with body on SoapUI (Test)
我正在寻找如何在 SoapUI 上使用 groovy 调用带有正文参数的 OPTIONS 方法。我读到这是可能的,但无论是否令人难以置信,我还没有找到一个例子。
我试过这个:
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--------------------'
}
但什么都没有...
我一直在寻找解决方案,但同时我决定在这里提出问题,以便有人可以帮助我。
感谢 4 位先行人员!
您应该能够使用 groovy-wslite 库来实现相同的目的。
如果您注意到 README, OPTIONS 方法未在此处列出。但是,如果您检查存储库的日志,很明显该库已增强以支持相同的功能。
给你:
- 从 git
下载源代码
- 从源代码构建它(因为发布的版本没有选项)
- 复制SOAPUI_HOME/bin/ext目录下的库
- 重新启动 soapUI 工具
使用提供的示例代码 here。
希望对您有所帮助。
我正在寻找如何在 SoapUI 上使用 groovy 调用带有正文参数的 OPTIONS 方法。我读到这是可能的,但无论是否令人难以置信,我还没有找到一个例子。
我试过这个:
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--------------------'
}
但什么都没有...
我一直在寻找解决方案,但同时我决定在这里提出问题,以便有人可以帮助我。
感谢 4 位先行人员!
您应该能够使用 groovy-wslite 库来实现相同的目的。
如果您注意到 README, OPTIONS 方法未在此处列出。但是,如果您检查存储库的日志,很明显该库已增强以支持相同的功能。
给你:
- 从 git 下载源代码
- 从源代码构建它(因为发布的版本没有选项)
- 复制SOAPUI_HOME/bin/ext目录下的库
- 重新启动 soapUI 工具
使用提供的示例代码 here。
希望对您有所帮助。