gpt4 book ai didi

java - 在 servlet 中获取、抓取和处理外部网站,我应该在 doGet 还是 doPost 中进行?

转载 作者:太空宇宙 更新时间:2023-11-04 12:48:57 25 4
gpt4 key购买 nike

我的服务架构存在一些问题。我的任务如下:

  1. 首先,我需要创建一个 Servlet,并在调用 HTTP GET 请求时发送一​​些信息。像这样的事情:

http://localhost:8080/?startDate=05/15/2016&endDate=05/22/2016&origin=HKG&destination=LHR

好的,我通过 servlet 方法 doGet() 中的以下代码获取此信息:

String startDate = req.getParameter("startDate").toString();
String endDate = req.getParameter("endDate").toString();
String origin = req.getParameter("origin").toString();
String destination = req.getParameter("destination").toString();

2.然后,使用此信息我需要在真实网站(不是我的网站)上填写表格,并且该网站与我的 Servlet 没有任何关系。我是通过 Selenium 库(例如 HTMLUnit)完成的。所有这些事情都是由其他类中的一些方法执行的,但这些方法是在servlet的doGet()中调用的。这些网站上的表格已完成,我被转移到新网页并显示结果

3.然后,我需要以我必须的方式解析这些结果。不管这条路是什么。解析结果应该出现在与我的 Servlet 链接的网页上

问题是如何在我的 servlet 中放置所有这些步骤?我应该将什么传递给 doGet() 方法?我应该将什么传递给doPost()?如何以这种方式调用doPost()?因为现在我在 doGet() 中完成所有操作,并且我认为这不是最好的方法,因为 HTTP GET 应该是幂等的。

最佳答案

您不需要 doPost 方法,因为客户端在 get request 中向您传递 uri 或别名中的数据。您只需要从外部网站获取数据并构建响应即可:

public void doGet(HttpServletRequest request,
HttpServletResponse response){

// your request parsing

// Your Magic with Selenium

PrintWriter out = response.getWriter();
String data = //your data fetched from website by `Selenium` library
out.println(//**html with embedded data **//)
}
<小时/>

注意一点:看起来非常可疑。我不认为它会工作得很好。据我所知,Selenium 需要一些时间进行导航等,因此您很容易捕获 timeout 错误代码

关于java - 在 servlet 中获取、抓取和处理外部网站,我应该在 doGet 还是 doPost 中进行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36032392/

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