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

     2023-04-15     57

关键词:

【中文标题】桌面应用程序如何从网站获取信息?【英文标题】:How does a desktop application get information back from a website? 【发布时间】:2010-12-25 07:38:45 【问题描述】:

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

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

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

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

【问题讨论】:

只是为了澄清 - 这是我在网站上所做的事情,我遇到了问题。 Qt 确实具有发送 HttpRequest 的能力。但是诸如“回显某些东西”或“让您的服务器端响应”或“php 脚本检查”之类的短语对我来说意义不大。我该怎么写才能做到这一点? 【参考方案1】:

使用网络服务的最简单方法是通过 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 ...

【讨论】:

谢谢,这就是我正在寻找的东西(我认为),但是“需要更新”在哪里得到“打印”?我的应用程序将如何读取它? 您的应用程序会将其读取为您请求的网页的响应。然后,您的应用程序只需接收该响应并将其显示给用户。 Rigth - PHP 端的输出(打印)将成为调用网页的函数的返回字符串。我已经更新了我的答案以反映这一点【参考方案2】:

最简单的方法是使用 HTTP 协议。将应用程序版本作为获取参数传递(即“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";
?>

Obv 如果您使用与“x.x.x”不同的版本字符串,那么您需要根据需要更改代码。如果您决定只使用单个版本号,则可以将数组内容替换为单个 if($version

如果有可能获得比当前版本更新的版本(例如,在测试、beta 等期间),那么该代码可能会错误地报告更新(例如,如果用户有 2.0.0 测试版本,并且“官方”版本是 1.3.0,然后它会说需要更新,因为 0

【讨论】:

【参考方案3】:

带有 XML/JSON 的 HTTP 是一个很好的起点。

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

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

【讨论】:

【参考方案4】:

这可以像让您的应用发出请求一样简单

http://website.com/checkupdates.php?v=<current_version>

您的程序填写 current_version。

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

【讨论】:

如何从网站获取特定数据并将其显示在我的应用程序中?

】如何从网站获取特定数据并将其显示在我的应用程序中?【英文标题】:Howtogetspecificdatafromawebsiteandshowitinmyapp?【发布时间】:2018-01-0801:11:51【问题描述】:也许已经有人问过类似的问题,但我找不到适合我的答案。我只想从... 查看详情

使用php创建应用程序ID后如何从facebook获取用户详细信息

】使用php创建应用程序ID后如何从facebook获取用户详细信息【英文标题】:Howtogetuserdetailsfromfacebookaftercreatingappidusingphp【发布时间】:2016-05-1907:13:20【问题描述】:我需要在我的网站上包含facebook登录以进行注册。我创建了一个fac... 查看详情

如何从电子桌面应用程序中获取当前选定的文本?

】如何从电子桌面应用程序中获取当前选定的文本?【英文标题】:Howtogetcurrentlyselectedtextfromwithinelectrondesktopapplication?【发布时间】:2016-04-1603:47:48【问题描述】:我正在使用electron构建一个桌面应用程序。作为其功能的一部分... 查看详情

如何将信息从 PHP 代理推送到 Flex 应用程序

】如何将信息从PHP代理推送到Flex应用程序【英文标题】:HowtopushinformationfromaPHPproxytoaFlexapplication【发布时间】:2010-07-2905:45:41【问题描述】:所以我有一个从网站获取信息的PHP代理。假设代理从(www.example.com)获取信息。它检查返... 查看详情

如何从 Java 桌面应用程序中的重定向 uri 获取 facebook 代码

】如何从Java桌面应用程序中的重定向uri获取facebook代码【英文标题】:HowtogetfacebookcodefromredirecturiinJavadesktopapplication【发布时间】:2015-05-0810:53:40【问题描述】:我是graphfacebookapi的新手。我尝试通过发送http请求来获取MY_VERIFICATIO... 查看详情

从 Web 应用程序 - 我们如何检查我们的 Windows 桌面应用程序是不是已安装?连版本信息,我们怎么能得到呢?

】从Web应用程序-我们如何检查我们的Windows桌面应用程序是不是已安装?连版本信息,我们怎么能得到呢?【英文标题】:FromaWebApplication-Howcanwecheckourwindowsdesktopapplicationisalreadyinstalledornot?Eventheversioninformation,howwecangetit?从Web应用... 查看详情

如何在android中获取联系网站信息?

】如何在android中获取联系网站信息?【英文标题】:Howtogetcontactwebsiteinformationinandroid?【发布时间】:2017-06-2916:35:44【问题描述】:我尝试获取联系方式。我可以从Phone.CONTENT_URI获取DISPLAY_NAME、Phone.DATA。我使用以下代码:StringurlD... 查看详情

python:如何从桌面应用程序重定向到url,等待用户接受授权并获取授权码

】python:如何从桌面应用程序重定向到url,等待用户接受授权并获取授权码【英文标题】:python:howtoredirectfromdesktopapptourl,waitusertoaccepttheauthorizationandgetauthorizationcode【发布时间】:2020-11-0208:16:13【问题描述】:我正在使用SpotifyAPI... 查看详情

如何从其他网站获取数据? [关闭]

】如何从其他网站获取数据?[关闭]【英文标题】:HowcanIgetdatafromotherwebsites?[closed]【发布时间】:2013-06-1013:32:44【问题描述】:我想创建一个网站,从其他网站中提取信息并将它们打印到我的网站中,我正在研究阶段,所以我想... 查看详情

如何从网站获取数字以供 Android 应用使用 [关闭]

】如何从网站获取数字以供Android应用使用[关闭]【英文标题】:Howtogetanumberfromawebsiteforananandroidappuse[closed]【发布时间】:2021-10-2209:40:19【问题描述】:我有一个关于从网站抓取数据的问题。我想用这个汇率网站来获取从美元兑... 查看详情

CUDA如何从屏幕获取像素?

...问题讨论】:【参考方案1】:无法使用CUDA从屏幕/桌面/应用程序窗口 查看详情

如何从 google play store 获取应用市场版本信息?

...:2016-03-2210:39:44【问题描述】:如何从谷歌游戏商店获取应用程序版本信息,以便在更新Play商店应用程序时提示用户强制/推荐应用程序更新,即如果用户使用旧版本应用程序。我已经通过andorid-market-api这不是官方的 查看详情

如何从网站获取 Facebook 身份验证令牌

】如何从网站获取Facebook身份验证令牌【英文标题】:HowtoobtainaFacebookauthenticationtokenfromawebsite【发布时间】:2011-01-0805:00:04【问题描述】:我对Facebook开发相对较新,我已经看到了很多关于Facebook身份验证的不同信息,但我想知道... 查看详情

如何从公共分类账中获取信息 - 最大的钱包?

】如何从公共分类账中获取信息-最大的钱包?【英文标题】:Howdogetinfofromapublicledger-Largestwallets?【发布时间】:2018-08-1105:35:01【问题描述】:我很好奇如何从公共分类账中获取一些信息。例如比特币或网站https://bitinfocharts.com它... 查看详情

如何从贝宝捐赠中获取交易信息?

】如何从贝宝捐赠中获取交易信息?【英文标题】:HowtogettransactioninformationfromPayPaldonation?【发布时间】:2016-02-1011:17:15【问题描述】:我有一个使用Paypal网站创建的捐赠按钮,但如果我想保存交易状态、捐赠价值等信息,我必... 查看详情

如何从使用 Java 的网站获取 favicon.ico?

...间】:2012-06-2020:59:59【问题描述】:所以我正在制作一个应用程序来存储所有用户最喜欢的应用程序的快捷方式,就像一个集线器一样。我可以支持实际文件,并且我有一个用于快捷方式的.lnk解析器。我认为该应用程序也支持In... 查看详情

如何从谷歌博客获取信息以显示在 IOS 应用程序上

】如何从谷歌博客获取信息以显示在IOS应用程序上【英文标题】:HowtofetchinformationfromgooglebloggertobeshownonanIOSapp【发布时间】:2014-12-2709:29:02【问题描述】:我需要从我创建的博客中获取信息并将其显示在IOS应用程序上。这是我到... 查看详情

如何从联系信息中获取名字和姓氏?

...间】:2013-06-1105:57:18【问题描述】:我在Windows应用商店应用程序中使用ContactPicker,我需要分别检索所选联系人的名字和姓氏。不幸的是,ContactInformation类只有一个Name属性,其中名称的两个部分是连接在一起的。CustomFi 查看详情