Java 如何通过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

我必须通过selenium+TestNG(Java)自动化API。我知道使用selenium代码自动化API不是一个好习惯,但我仍然要这样做


场景-有一个登录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方面的新手,所以对此不太了解。在研究了这么多之后,我发布了这些问题。现在,不知何故,我可以实现我想要实现的目标。谢谢大家的支持。