gpt4 book ai didi

java - Arquillian 测试 POST 到 Servlet

转载 作者:行者123 更新时间:2023-11-28 20:52:27 26 4
gpt4 key购买 nike

我有以下测试可用于测试 servlet 上的 GET 方法:

    @ArquillianResource
URL deploymentUrl;

@Test
@RunAsClient
public void testLoginServlet() throws IOException {
URL url = new URL(deploymentUrl, "login");
StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
String line;

while ((line = reader.readLine()) != null) {
builder.append(line);
}
reader.close();

assertNotNull(builder.toString());
}

测试对同一 servlet 的 POST 调用并传递 1 个参数的最佳方法是什么?

我应该创建一个 WebTarget 并使用它,还是 Arquillian 有一个技巧可以使它更容易。我以为有注释,但找不到任何内容。

最佳答案

这是我想出的:

protected String doLoginPost(String url, String username, String password) throws Exception {

HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);

List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
urlParameters.add(new BasicNameValuePair("username", username));
urlParameters.add(new BasicNameValuePair("password", password));
post.setEntity(new UrlEncodedFormEntity(urlParameters));

HttpResponse response = client.execute(post);
L.info("\nSending 'POST' request to URL : " + url);
L.info("Post parameters : " + post.getEntity());
L.info("Response Code : " +
response.getStatusLine().getStatusCode());
if (response.getStatusLine().getStatusCode() != 200) {
return null;
}
BufferedReader rd = new BufferedReader(
new InputStreamReader(response.getEntity().getContent()));

StringBuffer result = new StringBuffer();
String line = "RESULT: ";
result.append(line);
while ((line = rd.readLine()) != null) {
result.append(line);
}

return result.toString();
}

关于java - Arquillian 测试 POST 到 Servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40567870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com