SOAPUI:在rest请求中发送大字符串/内容不会给出响应
我必须测试一个具有不同内容长度(SOAPUI:在rest请求中发送大字符串/内容不会给出响应,rest,request,soapui,Rest,Request,Soapui,我必须测试一个具有不同内容长度(1KB-10MB)的RESTAPI(Post&HTTPS)的特定参数 此API的目的是发送一个文件。Rest请求工作正常,直到我发送1-5KB的文件 但是,除此之外,请求失败,实际上似乎从未发送过。我在XML响应中看到了下面的内容,在json下没有看到任何内容 数据contentType=“null”contentLength=“0”> 我已经尝试了标题中的内容长度&增加套接字超时 我也尝试过浏览器插件,但也未能发送大字符串。我遇到了同样的问题。但我通过groov
1KB-10MB
)的REST
API
(Post
&HTTPS
)的特定参数
此API的目的是发送一个文件。Rest
请求工作正常,直到我发送1-5KB的文件
但是,除此之外,请求失败,实际上似乎从未发送过。我在XML响应中看到了下面的内容,在json下没有看到任何内容
数据contentType=“null”contentLength=“0”>
我已经尝试了标题中的内容长度&增加套接字超时
我也尝试过浏览器插件,但也未能发送大字符串。我遇到了同样的问题。但我通过groovy脚本解决了上载大文件的问题。下面是代码,它可能会对您有所帮助
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.entity.FileEntity;
import org.apache.http.impl.client.DefaultHttpClient;
String filename = "D:\\file.txt"
String hosts = "some-endpoint.com"
String resource = "resource/to/upload"
//Complete URL
String url = "http://" + hosts + "/" + resource;
log.info(url)
File file = new File(filename);
FileEntity reqEntity = new FileEntity(file, "text/plain");
DefaultHttpClient client = new DefaultHttpClient();
HttpPut req = new HttpPut(url);
req.setHeader("header-key", "header-value");
// here set the file entity
req.setEntity(reqEntity);
//Declare HttpResposne object and intialize it to null
HttpResponse resp = null;
try {
resp = client.execute(req);
}
catch (ClientProtocolException e)
{
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
log.info(resp);
HttpEntity entityNew = resp.getEntity();
System.out.println(resp.toString());
if(resp.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
entityNew.writeTo(out);
} catch (IOException e) {
e.printStackTrace();
}
String str = new String(out.toByteArray());
log.info(str);
if(str.contains("some_text_in_response")){
System.out.println("succ");
assert true;
}
else{
System.out.println("Fail");
assert false;
}
}
else{
System.out.println("Fail");
assert false;
}
我使用了HttpPut,您可以使用HttpPost、HttpGet和其他方法类引用http客户端库文档,直到我发送了一个1-5KB的文件,有点困惑。你说你需要从1KB测试到10MB,但那句话说从测试开始就失败了。日志里有什么?错误日志中有什么?