gpt4 book ai didi

java - 将响应发送到本地文件

转载 作者:行者123 更新时间:2023-12-01 13:10:24 25 4
gpt4 key购买 nike

我有一个带有一个按钮的简单 html 页面

<html>
<head>
<script>
function sender() {
var oReq = new XMLHttpRequest();
oReq.open('GET', 'http://localhost:8888?param2=value2', true);
oReq.onreadystatechange = function() {
if (oReq.readyState == 4) {
if (oReq.status == 200) {
alert(xmlhttp.responseText);
}
if (oReq.status == 404) {
alert("404040404!");
}
}
};
oReq.send();
}
</script>
</head>
<body>
<button id="click" onclick="sender();">Send</button>
</body>
</html>

我有一个用 java 编写的简单 http 服务器,除了读取传入请求并显示控制台之外什么也不做。

但是如何从服务器向我的文件发送响应?例如我的文件位于那里

file:///C:/Users/Admin/Desktop/development/test.html

请求看起来像这样

GET /?param2=value2 HTTP/1.1
Host: localhost:8888
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:28.0) Gecko/20100101 Firefox/28.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en,ru-ru;q=0.8,ru;q=0.5,en-us;q=0.3
Accept-Encoding: gzip, deflate
Origin: null
Connection: keep-alive

Header parsing result: param2=value2

在哪里以及如何发送响应?

服务器正在读取这样的 header

BufferedReader reader = new BufferedReader(new InputStreamReader(
sock.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
while (true) {
line = reader.readLine();
if (line == null || line.isEmpty())
break;
sb.append(line + System.getProperty("line.separator"));
}
return sb.toString();

最佳答案

好吧,您已经收到响应,如果请求正常,响应将显示在 Javascript 警报中。只需执行所需的任何操作,将此警报替换为 HTML 页面中的实际显示即可。

oReq.onreadystatechange = function() {
if (oReq.readyState == 4) {
if (oReq.status == 200) {
//This is where you should put the code (or function call) when everything went ok
}
if (oReq.status == 404) {
//this is when you got a 404 error
}
}
};

如果您希望将其保存到客户端计算机上的文件中,那么您应该从服务器端代码发回一个文件流,然后由客户端保存(就像任何文件下载一样),但据我所知要知道,您无法使用完整的 AJAX 来完成此操作,并且需要一个简单的 http 请求来完成此操作。另请注意,您错过了 AJAX 代码中错误处理的很大一部分...除了 404 错误之外,请求失败的方式还有很多,实际上,由于您是设置所有这些的人,所以 404 错误可能是发生的可能性最小。

关于java - 将响应发送到本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22916244/

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