使用Qml/Qt的Https POST/GET
最近我正在使用Qt-Qml开发诺基亚手机。我必须向给定的HTTPS Url发出POST请求。 我正在使用QML,我正试图在没有任何运气的情况下用Javascript实现它 有人对此有想法吗?可以在QML中使用Javascript来实现吗? 有关于如何在QT中制作的建议吗 我尝试调用如下函数:使用Qml/Qt的Https POST/GET,qt,post,https,get,qml,Qt,Post,Https,Get,Qml,最近我正在使用Qt-Qml开发诺基亚手机。我必须向给定的HTTPS Url发出POST请求。 我正在使用QML,我正试图在没有任何运气的情况下用Javascript实现它 有人对此有想法吗?可以在QML中使用Javascript来实现吗? 有关于如何在QT中制作的建议吗 我尝试调用如下函数: var http = new XMLHttpRequest() var url = "myform.xsl_submit"; var params = "num=22&num2=333"; http
var http = new XMLHttpRequest()
var url = "myform.xsl_submit";
var params = "num=22&num2=333";
http.open("POST", url, true);
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
print("ok");
}else{
print("cannot connect");
}
}
http.send(params);
您的
if
语句错误:函数被调用了多次,但只调用了一次http.readyState=4
。所以,尽管还没有错误,您还是可以打印错误消息
您应该首先检查http.readyState=4,然后查看状态代码
下面是一个简单的工作示例:
import QtQuick 1.1
Rectangle {
Component.onCompleted: {
var http = new XMLHttpRequest()
var url = "http://localhost:8080";
var params = "num=22&num2=333";
http.open("POST", url, true);
// Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() { // Call a function when the state changes.
if (http.readyState == 4) {
if (http.status == 200) {
console.log("ok")
} else {
console.log("error: " + http.status)
}
}
}
http.send(params);
}
}
我用netcat创建了一个本地伪Web服务器来测试它:
% echo -e 'HTTP/1.1 200 OK\n\n' | nc -l 8080
POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Content-Length: 15
Connection: Keep-Alive
Accept-Encoding: gzip
Accept-Language: de-DE,en,*
User-Agent: Mozilla/5.0
Host: localhost:8080
num=22&num2=333
@弗兰:哦,好的:)但我发现了一些不同的东西,这可能也会导致错误消息……是的,你是对的!无论如何,谢谢你..我仍然在努力处理请求..但是没有办法
XMLHttpRequest.DONE
比4
更容易记住,我想。。。