直接从浏览器向Java桌面应用程序发送数据
我正在使用直接从浏览器向Java桌面应用程序发送数据,java,typescript,browser,server,client,Java,Typescript,Browser,Server,Client,我正在使用TypeScript作为客户端脚本语言制作一个web应用程序。我使用的其他技术有,和。当用户单击网站上的按钮时,我已经运行的Java桌面应用程序(“独立于”web应用程序,而不是web应用程序的服务器)应接收从web应用程序发送的数据,然后提示用户将其导入桌面应用程序 如何做到这一点?有可用的示例代码吗 我是否可以在桌面应用程序上启动一个简单的侦听器服务器,等待客户端(浏览器)将导入数据的有效负载发送到侦听服务器(以独立于平台的方式) 请注意,这与从Internet资源下载数据的桌面应
TypeScript
作为客户端脚本语言制作一个web应用程序。我使用的其他技术有,和。当用户单击网站上的按钮时,我已经运行的Java
桌面应用程序(“独立于”web应用程序,而不是web应用程序的服务器)应接收从web应用程序发送的数据,然后提示用户将其导入桌面应用程序
如何做到这一点?有可用的示例代码吗
我是否可以在桌面应用程序上启动一个简单的侦听器服务器,等待客户端(浏览器)将导入数据的有效负载发送到侦听服务器(以独立于平台的方式)
请注意,这与从Internet资源下载数据的桌面应用程序不同,因为应该通过单击浏览器本身来确定资源,而不是通过桌面应用程序的界面
仅允许我以自定义的
URI
作为参数启动桌面应用程序,并且它也是Windows
,因此这不是一个令人满意的解决方案。我了解您的设置如下:
浏览器SpringBoot
浏览器中呈现的网页应与本地桌面应用程序通信
解决方案是在网页和桌面应用程序之间建立HTTP连接,如下所示:
- 桌面应用程序必须包含一个嵌入式servlet容器,例如,它将服务器套接字绑定到127.0.0.1:yourPort
- 嵌入的servlet容器需要一个,因为网页的来源肯定不同于127.0.0.1
- 该网页只需在XMLHttpRequest的帮助下打开一个连接,例如
var req=新的XMLHTTPRequest(); 请求打开(“POST”和“); 请求setRequestHeader(“内容类型”、“应用程序/x-www-form-urlencoded”); 请求发送(“有效载荷=“+myPayload”);var req = new XMLHTTPRequest(); req.open("POST", "http://127.0.0.1:yourPort"); req.setRequestHeader("content-type", "application/x-www-form-urlencoded"); req.send("payload="+ myPayload);