【发布时间】:2020-01-04 08:31:07
【问题描述】:
如何将 HTTP 请求的正文保存为字符串并打印出来?我有一个 HTML 文件,我正在发送一个这样的 HTTP 请求:
function loadXMLDoc(str) {
var url = "http://192.168.178.37?" + str;
var http = new XMLHttpRequest();
http.onreadystatechange = function() {
if (http.readyState === 4) {
window.alert(http.response);
}
}
http.open('GET', url, true);
http.send();
}
另一方面,响应如下所示:
char rspText[] = "value=sensorvalue";
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: application/x-www-form-urlencoded");
client.printlnf("Content-Length: %d", strlen(rspText));
client.println();
client.print(rspText);
我的问题是应该包含在正文中的http.response 始终为空。我知道我可能使用了错误的 Content-Type。我只是想在响应中发回一个传感器值并将其保存为字符串以供以后使用。
【问题讨论】:
-
如果服务器以
application/x-www-form-urlencoded的 Content-Type 进行响应会很奇怪。典型的响应类型是application/json或text/html或text/plain。不知道您的用例是什么,如果您只想要一个纯字符串,请使用text/plain。 -
是的,我只想要一个纯字符串,但 text/plain 不知何故对我不起作用,所以我尝试了 application/x-www-form-urlencode ,我至少可以为键设置一个值。我真的只想拥有一个带有传感器值的纯文本并从 html 文件中访问它。我现在为此苦苦挣扎了一段时间。
-
您可能会遇到错误;检查
http.status并确保它是 200。 -
我可以使用 Wireshark 跟踪 GET 请求和响应,一切似乎都很好(text/plain 现在可以使用)。我发现我的字符串是这样的:基于行的文本数据:文本/纯文本(1 行)。我只想读取该字符串并保存它。也许 http.response 是这样做的错误方法? Window.alert(http.response) 也会打开一个窗口,但它是空的。
标签: javascript html http httpresponse