我以前没有使用过 HTTP post/get,我办公室的下一个项目是基于 java 中的 http post/get。它基本上是基于客户端-服务器的应用程序。客户将发布一些信息,我需要获取该信息并处理字符串,反之亦然。该项目必须在 J2SE 上开发。您可以将其假设为 JMS 队列消息处理之类的东西。我用谷歌搜索了信息,但大部分信息都是针对网络应用程序的,我的应该像消息队列一样工作。有人可以向我解释如何执行此操作或指出我可以从哪里获得一些有用的信息。
谢谢 阿润
最佳答案
嗯,如果你不需要专门使用严格的 HTTP,而你只需要使用 Java SE(而不是 Java EE,它排除了 Servlet、JSP、JMS 等),那么你可能需要调查 ServerSocket
和 Socket
类。
服务器
您的服务器需要监听 TCP 端口(例如,端口 8080)——通常您会选择一个介于 1025 和 65,535 之间的端口号,但是如果您尝试使用具有默认端口的已定义服务,则用那个。 但是请注意,在 unix 上,为了监听 1024 以下的任何端口,我相信您需要是 root。传统上,端口 80 用于 HTTP。
要监听此端口,您的代码中需要这样的内容:
ServerSocket srvSocket = new ServerSocket(8080);
Socket socket = srvSocket.accept();
这几乎是最基本的代码,它会导致您的应用程序等待,直到连接到端口 8080。连接后,您可以获得 InputStream
和 OutputStream
您连接的客户端,通过询问返回的 socket
对象,允许您从客户端读取内容,并将这些请求插入队列中。然后这个队列可以由其他一些线程处理。
客户端
为了让您的客户端连接到服务器,您需要使用基于以下示例的内容:
Socket connection = new Socket("server.domain.com", 8080);
OutputStream output = connection.getOutputStream();
然后,您可以将您对服务器的请求写入 OutputStream
(并从 getInputStream()
返回的 InputStream
中读取,如果您希望的话一个回应)
提供的代码非常基础,但它应该让您大致了解如何进行。如果您想使用真正的 HTTP,您甚至可以使用此方法,但是如果是这种情况,使用一些预制库可能是更好的主意(尽管您可能不需要 HTTP 规范中定义的所有功能本身)。
无论如何,我希望这能为您提供一个良好的构建起点。
关于java - JAVA中的HTTP Post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8440619/