桌面应用程序如何从网站获取信息?

时间:2009-12-10 16:04:39

标签: php http networking desktop

我是桌面应用程序开发人员。我正在创建一个基本的网站来销售我编写的应用程序,并沿途学习一些网络技术,但还没有学到那么多(我选择的CMS - Textpattern - 已经让我学到了很多PHP到目前为止)。

我希望我的桌面应用程序可以调用我的网站并说“我是版本xxxx”,我需要它才能得到回复 - 至少“有/不是更新”,最好也是“它的”一个xKB下载并具有这些功能......“ - 这样我就可以向用户显示信息并询问他们是否要下载它。

我可以从我的应用程序发送请求(一旦我了解Qt的QtNetwork模块)。我的问题是,为了能够从网站创建和发送适当的回复,我需要学习什么。

我很好学习任何必要的新技术/语言,我只是想确定我正在学习正确的东西而不是走错路。非常感谢任何帮助。

4 个答案:

答案 0 :(得分:2)

最简单的方法是使用HTTP协议。将应用程序版本作为get参数传递(即“www.yoursite.com/auto/update.php?version=1.0.2”)并回显而不是HTML,例如“最新”或“新版本: 1.1.0" 。

有许多库可以帮助您使用桌面端,无论您使用何种语言和平台(不确定QT是否包含HTTP内容,尽管我认为您可以自己完成所有HTTP标头内容)。

编辑:对于php方面的做法,你可以拥有像

这样简单的东西

(希望这个逻辑是正确的,我很快就想出来了:))

<?php
    //change this whenever you bring out a new version
    $current_version = array(1, 1, 0);

    $version = $_GET['version'];

    //split the version string into the 3 numeric parts
    $version = split('.', $version);

    //compare $version and $current_version
    if(    $version[0] < $current_version[0]
        || $version[1] < $current_version[1]
        || $version[2] < $current_version[2])
    {
        echo "update_needed, $current_version[0].$current_version[1].$current_version[2]";
    }
    else echo "up_to_date";
?>

如果您使用不同的版本字符串“x.x.x”,则需要根据需要更改代码。如果您决定只使用一个版本号,则可以使用单个if($ version&lt; $ current_version)替换数组内容。

如果有可能获得比当前版本更新的版本(例如在测试,测试期间等),那么该代码可能错误地报告更新(例如,如果用户具有2.0.0测试版本,并且“官方”版本是1.3.0然后它会说需要更新,因为0 <3)所以你需要改变它来处理它,但你希望得到这个想法。

答案 1 :(得分:2)

使用Web服务的最简单方法是通过REST:

这是一个非常快速和脏的PHP脚本,在您的服务器document_root中保存为“versioncheck.php” - 只是为了得到这个点:

<?
define ("CURRENT_VERSION", "5");

$version = $_REQUEST['version'];

if ($version < CURRENT_VERSION) print "Update required";
else print "YOU'RE ALL GOOD";
?>

您的应用会拨打http://wwww.yoursever.com/versioncheck.php?version=2

因此,我们假设您的桌面应用程序有一个名为“getHTTP”的函数,可以检索HTTP页面。变量“currentVersion”是您的桌面应用当前版本号 所以你的代码是这样的:

//NOTE: I don't know the syntax of your desktop app's language, so just treat this as highlevel pseudo code.

/** all sorts of other goodness **/
//CheckVersion
upgrade = getHTTP("http://wwww.yoursever.com/versioncheck.php?version="+currentVersion); 
if (upgrade == "Update Required") then doUpdate(); // doUPdate is some function you've defined to act as a handler for when an update needs to occur
else
{
... continue on with app ...
}

答案 2 :(得分:0)

使用XML / JSON的HTTP是一个很好的起点。

让服务器端响应通过HTTP发送的XML / JSON查询。

在您的情况下,它可能就是您的Web服务器正在提供的XML文档。

答案 3 :(得分:0)

这可以像让您的应用向

发出请求一样简单
http://website.com/checkupdates.php?v=<current_version>

你的程序填写了current_version。

php脚本会检查是否有新版本并相应地回复信息。