繁体   English   中英

如何通过 Selenium 发送 API 标头请求并获得响应

[英]How to Send API header request through Selenium and get response back

我必须通过 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();`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM