我必须发送一个HTTP请求到我们在Linux机器上运行的C程序。我怎样才能用Java发送一个HTTP请求到我们的服务器,这个服务器是用C语言在Linux机器上运行的?发送http请求到linux服务器
回答
如果您要问如何用Java发送HTTP请求到用C编写的Web服务器,您可以使用URLConnection
类。
谢谢,但如果你给我一些完整的例如,那对我来说会更容易。我需要更多的澄清。 – user556761 2011-02-16 04:30:51
try {
// Construct data
String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
// Send data
URL url = new URL("http://hostname:80/cgi");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
// Process line...
}
wr.close();
rd.close(); } catch (Exception e) { }
以上示例是使用URL发送POST请求的。 也请看Sun Tutorial阅读/写作URLConnection。另一个选项是使用Apache HTTPComponents,其中有HttpCore和HttpClient模块的示例。 如果你正在考虑实现web服务器,你将不得不处理Http请求,这涉及到一个线程池,解析请求,生成HTML,安全性,多个会话等,或者通过使用off-the-像Apache这样的架构网络服务器,并查看Perl,Ruby等所有高级语言可用于开发Web应用程序。 为了实现你自己的Http服务器,请看看Micro-Httpd或tinyHttpd 你也可以看看Adding Web Interface -C++ application,它有一个示例代码。
public void sendPostRequest() {
//Build parameter string
String data = "width=50&height=100";
try {
// Send the request
URL url = new URL("http://www.somesite.com");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
//write parameters
writer.write(data);
writer.flush();
// Get the response
StringBuffer answer = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
answer.append(line);
}
writer.close();
reader.close();
//Output the response
System.out.println(answer.toString());
} catch (MalformedURLException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
以上示例是使用URL发送POST请求的。
从你的问题措辞的方式。我认为你需要知道一些基本的东西,然后才能开始。尝试尝试使用Google搜索简单指南了解Web服务器的工作方式。
一旦你的基本思路,有一对夫妇的一个C程序员选择:
1)你想你的C程序中连续运行,等待您的Java请求。
在这种情况下,您将不得不编写您的C程序来打开套接字并侦听连接。例如,请参见http://www.linuxhowtos.org/C_C++/socket.htm。
OR
2)你有你的服务器将特定的请求时,每次运行你的C程序上的Web服务器?在这种情况下,您将不得不将您的C编码为CGI程序。例如,请参见http://www.cs.tut.fi/~jkorpela/forms/cgic.html。提示:(2)要容易得多!
- 1. 发送http请求到solr服务器
- 2. C http服务器发送请求到我的服务器?
- 3. 验证服务器发送HTTP请求
- 4. 从后台服务发送http请求到服务器失败
- 5. 如何通过http请求发送文件到http服务器
- 6. 发送HTTP请求到服务器都异常时有发生
- 7. RESTKIT:请求不发送到服务器
- 8. 发送邮寄请求到服务器
- 9. Android - 发送JSON请求到服务器
- 10. Python:发送请求到protobuf服务器
- 11. 发送请求到服务器端
- 12. 直接发送请求到服务器
- 13. 发送HTTPS POST请求到服务器
- 14. 发送请求到服务器iOS
- 15. 查看HTTP POST请求发送到本地服务器
- 16. 发送http请求到服务器,不期待回应
- 17. 如何发送HTTP请求到服务器瓶中
- 18. Jmeter发送HTTP请求到服务器的执行行为
- 19. 发送iPhone HTTP请求到Apache PHP网络服务器
- 20. HTTP从PHP发送到NodeJs服务器的请求
- 21. 从Android发送一个HTTP请求到一个rails服务器
- 22. Android代码发送http请求到本地服务器
- 23. 无法发送HTTP请求到后端服务器
- 24. 发送GET请求到HTTP服务器;不关心响应
- 25. 使用JSON发送HTTP请求到PHP web服务器,在ANDROID
- 26. 发送HTTP请求到服务器的匿名
- 27. 发送JSON到服务器通过HTTP放置请求在android
- 28. 将请求从https发送到本地http服务器
- 29. Apache服务器发送http请求到另一台服务器与PHP
- 30. 从Flash发送请求到服务器的服务器库API
写入服务器的语言和运行的操作系统都与此问题无关。 – 2011-02-16 05:06:46
可能重复的[如何在Java中发送HTTP请求?](http://stackoverflow.com/questions/1359689/how-to-send-http-request-in-java) – 2011-02-16 05:08:25