谢谢大家的指点,程序已经可以发送中文了。具体的代码如下:
void SMWSMainWindowImpl::sendinfo()
{
QString httpmsg,msg;
smess_tb->append(" "+QTime::currentTime().toString("hh:mm:ss")+"\n");
tcpdialog->connToHost();
QTextCodec *codec = QTextCodec::codecForName("utf8");
msg = codec->toUnicode(mess_te->text().local8Bit());
QUrl *qurl = new QUrl();
qurl->encode(msg);
httpmsg = "GET "+param+"?message="+msg+" HTTP/1.1\r\nHost:\r\nAccept:*/*\r\nUser-Agent:Mozilla/4.0\r\n\r\n";
smess_tb->append(httpmsg.latin1());
tcpdialog->sendPacket(httpmsg.latin1(),httpmsg.length());
// tcpdialog->closeConnection();
}
可是又遇到了新的问题,有时安装这个程序的机器是无法访问到internet的,我们的业务机也要求不能挂在外网上。所以需要一个能够访问internet的机器作为代理,来把这个程序发送的信息再转发到目的地。我打算在一个能够访问internet的机器上装apache服务器,然后在写一个后台程序(*.php)在做中转,我觉得这个方法是可行的。在测试中,中转程序(*.php)可以接收到这个应用发来的信息,可是在中转程序重定向时就有问题了。我试了两中代码。
第一个代码是
<?php
Header("Location:
http://xxxxx.com.cn/asp/send.asp?message=".$message);
?>
第二个代码是
<?php
Header("GET /asp/send.asp?message=123 HTTP/1.1");
Header("Host:xxxxx.com.cn");
Header("Accept:*/*");
Header("User-Agent:Mozilla/4.0");
?>
可这两段代码都不能正常的中转,请各位大侠帮我看看我的中转程序(*.php)有什么问题,是不是还缺了什么。谢谢! 复函为盼!