Java 如何通过Selenium发送API头请求并获得响应
我必须通过selenium+TestNG(Java)自动化API。我知道使用selenium代码自动化API不是一个好习惯,但我仍然要这样做Java 如何通过Selenium发送API头请求并获得响应,java,http,selenium,header,testng,Java,Http,Selenium,Header,Testng,我必须通过selenium+TestNG(Java)自动化API。我知道使用selenium代码自动化API不是一个好习惯,但我仍然要这样做 场景-有一个登录API,必须发送电子邮件和密码并获得回复(回复代码200)。我们还可以打印响应信息吗?如果您正在使用java,您可以使用java套接字库进行同样的操作: 以下是POST API的示例代码: URL obj = new URL(url); con = (HttpsURLConnection) obj.openConnectio
场景-有一个登录API,必须发送电子邮件和密码并获得回复(回复代码200)。我们还可以打印响应信息吗?如果您正在使用java,您可以使用java套接字库进行同样的操作: 以下是POST API的示例代码:
URL obj = new URL(url);
con = (HttpsURLConnection) obj.openConnection();
// add request header
con.setRequestMethod("POST");
con.setRequestProperty("User-Agent", USER_AGENT);
String urlParameters = "j_username=" + user + "&j_password=" + pass
+ "";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Post parameters : " + urlParameters);
System.out.println("Response Code : " + responseCode);
对于GET API:
obj = new URL(url);
obj.openConnection();
con = (HttpsURLConnection) obj.openConnection();
// optional default is GET
con.setRequestMethod("GET");
CookieHandler.setDefault(new CookieManager());
// add request header
con.setRequestProperty("User-Agent", USER_AGENT);
con.setRequestProperty("Content-Type", "text/plain; charset=utf-8");
con.setRequestProperty("Accept-Language", "en-US,en;q=0.8l");
con.setRequestProperty("Accept", "*/*");
con.setRequestProperty(
"Cookie",
"BIGipServerPRODCAN-Default=423078080.2087.0000; __utma=44365112.1659763098.1418886605.1427784911.1441869730.4; __utmc=44365112; __utmz=44365112.1427784911.3.2.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); JSESSIONID="
+ cookieValue);
responseCode = con.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + url);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(new InputStreamReader(
con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
File file = new File(prop.getFilePath() + "//XMLs//" + fileName
+ ".xml");
file.delete();
FileWriter fstream = new FileWriter(prop.getFilePath() + "//XMLs//"
+ fileName + ".xml", true);
BufferedWriter out = new BufferedWriter(fstream);
while ((inputLine = in.readLine()) != null) {
out.write(inputLine.toString());
out.newLine();
response.append(inputLine);
}
in.close();
out.close();`
“我知道使用selenium代码自动化api不是一个好习惯”这甚至不是一个习惯问题..selenium是一个浏览器自动化工具,而不是api测试工具。您可以使用普通的javaYes实现这一点。您同意selenium是浏览器自动化工具。你能给我一些java代码来做这件事吗?像“请给我代码”这样的问题在这里通常不太合适。您可以使用HTTP客户端加TestNG来测试响应吗?也许试一试,然后问一个问题,如果你卡住了?你尝试了什么,结果如何?就像你在学校做的那样。。。请出示你的作品。:)这是获得问题答案的过程的一部分。它对你很有帮助,因为它迫使你调查自己的问题并仔细思考。它还向读者证明,你做了功课,并做出了合理的尝试来回答自己的问题。第三,它帮助读者发现并诊断问题,从而为您提供更好的答案,减少我们浪费的时间。嘿,谢谢大家的回复和建议。我是selenium和java方面的新手,所以对此不太了解。在研究了这么多之后,我发布了这些问题。现在,不知何故,我可以实现我想要实现的目标。谢谢大家的支持。