|
|
[align=left]原帖地址:[url]https://answers.flexsim.com/questions/21092/web-communication-within-flexsim.html[/url][/align][align=left]原作者:[color=#e6353a][font=Helvetica][url=https://answers.flexsim.com/users/279/adityaprakash1.html]Aditya Prakash[/url][/font][/color]和[color=#e6353a][backcolor=rgb(223, 240, 216)][font=Helvetica][url=https://answers.flexsim.com/users/9/benjaminwilson.html]Ben Wilson[/url][/font][/backcolor][/color][/align][align=left][font=宋体]
[/font][/align][align=left][font=宋体]问题描述:关于[/font]flexsim[font=宋体]与[/font][font=Calibri]Web[/font][font=宋体]的连接交互问题[/font][/align][align=left][font=宋体]我在找一些和[/font]flexsim[font=宋体]与[/font][font=Calibri]Web[/font][font=宋体]的连接交互问题的一些教程和例子。在我的模型中我需要和[/font][font=Calibri]API[/font][font=宋体]产生交互。我已经浏览了论坛和查阅了用户手册。我发现最佳的回答是使用这个函数命令[/font][font=Calibri]---[/font][color=rgb(0, 0, 0)][font=Helvetica][size=11pt]applicationcommand("sendhttprequest"...)[/size][/font][/color][color=rgb(0, 0, 0)][font=宋体][size=11pt][font=宋体]。[/font][/size][/font][/color][color=rgb(0, 0, 0)][/color][/align][align=left][font=宋体][color=#000][size=11pt]虽然我可以使用它,如果我能知道更多的关于flexsim的Web交互方式和命令那就最好不过了。并且我想知道[/size][/color][color=#000][size=11pt]applicationcommand("sendhttprequest"...)[/size][/color][color=#000][size=11pt]是如何工作的?[/size][/color][color=#000][/color][/font][/align][align=left][color=#000][size=11pt][font=宋体] [/font][/size][/color][/align][align=left][font=宋体][color=#000][size=11pt]解答:[/size][/color][color=#000][/color][/font][/align][align=left][font=宋体][color=#000][size=11pt]如果您希望让您的模型直接向Internet上的某个服务器发送HTTP请求,并得到响应,那么您发现的论坛示例是一个很好的方法。[/size][/color][color=#000][/color][/font][/align][align=left][color=#000][size=11pt][font=宋体]我已附上Phil的样本模型,该模型是从该论坛帖子稍作修改的基础上完成的。此示例模型用到了脚本窗口和树视图。如果在Flexsim这两个功能不可用,可能你需要一个软件的许可证(正式版激活码)去更多的学习这个例子。[/font][/size][/color][color=rgb(0, 0, 0)][/color][/align][align=left][font=宋体]使用[/font]Flexsim[font=宋体]打开这个模型,你会看到屏幕底部的脚本窗口,里面有[/font][font=Calibri]sendhttprequest[/font][font=宋体]应用命令的用法示例。按脚本窗口的绿色的“运行”按钮来运行代码,然后看看树节点[/font][font=Calibri]MODEL:/Tools/result[/font][font=宋体]去查看服务器的响应。[/font][/align][align=left][font=宋体]我已经在脚本窗口上标有注释,去帮助理解了[/font]Phil[font=宋体]的原始模型。这是[/font][font=Calibri]sendhttprequest[/font][font=宋体]一些文件:[/font][/align][align=left]示例函数:[/align]applicationcommand("sendhttprequest", verb, server, object, data, silent, result);[align=left]Verb[font=宋体]是一个字符串,如“[/font][color=rgb(51, 51, 51)][font=Arial][size=9.5pt][font=宋体]向服务器传送数据[/font][/size][/font][/color]”或“[color=rgb(51, 51, 51)][font=Arial][size=9.5pt][font=宋体]服务器上获取数据[/font][/size][/font][/color]”,它描述了你在做的[font=Calibri]HTTP[/font][font=宋体]请求的排序。请看到这篇文章的[/font][font=Calibri]HTTP[/font][font=宋体]请求方法。(附链接:[/font][font=Calibri]https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods[/font][font=宋体](英文))[/font][/align][align=left]Server[font=宋体]也是一个字符串。它涉及到与服务器的通讯,支持[/font][font=Calibri]IP[/font][font=宋体]地址或完全限定的域名([/font][font=Calibri]FQDN[/font][font=宋体]),。在所附的示例模型,这是“[/font][url=http://maps.googleapis.com/][color=rgb(230, 53, 58)][font=Helvetica][size=11pt]maps.googleapis.com[/size][/font][/color][/url]”。[/align][align=left]Object[font=宋体]也是一个字符串。它代表服务器名称后面的[/font][font=Calibri]URL[/font][font=宋体]的其余部分,包括一个引导斜杠。例如,在我们的例子中,模型我们查询谷歌地图[/font][font=Calibri]API[/font][font=宋体]之间的温哥华、不列颠哥伦比亚,加拿大,旧金山,加利福尼亚,美国之间的距离。(他这个查询的完整[/font][font=Calibri]URL[/font][font=宋体]:[/font][url=https://maps.googleapis.com/maps/api/distancematrix/?origins=Vancouver+BC&destinations=San+Fransisco&sensor=false][color=rgb(230, 53, 58)][font=Helvetica][size=11pt]maps.googleapis.com/maps/api/distancematrix/?origins=Vancouver+BC&destinations=San+Fransisco&sensor=false[/size][/font][/color][/url])。在这个地址上,[url=http://maps.googleapis.com/][u][color=rgb(230, 53, 58)][font=Helvetica][size=11pt]maps.googleapis.com[/size][/font][/color][/u][/url][u][color=rgb(230, 53, 58)][font=宋体][size=11pt][font=宋体]是[/font][/size][/font][/color][/u][color=rgb(0, 0, 0)][font=宋体][size=11pt]server[font=宋体]的字符串,如上所述,[/font][/size][/font][/color][color=rgb(70, 136, 71)][font=Helvetica][size=11pt]/maps/api/distancematrix/?origins=Vancouver+BC&destinations=San+Fransisco&sensor=false[/size][/font][/color][color=rgb(70, 136, 71)][font=宋体][size=11pt] [/size][/font][/color][font=宋体]则是[/font]object[font=宋体]的字符串。[/font][/align][align=left]data[font=宋体]与作为[/font][font=Calibri]URL[/font][font=宋体]的一部分传递的数据相分离,它是一连串的可以发布到服务器上的数据。[/font][/align][align=left]所附的示例不使用这个参数,而是通过使用一个空字符串。[/align][align=left]Silent[font=宋体]是一个布尔的参数([/font][font=Calibri]1[/font][font=宋体]或[/font][font=Calibri]0[/font][font=宋体]),它指示是否要将任何错误打印到[/font][font=Calibri]FlexSim[/font][font=宋体]的系统控制台[/font][/align][align=left][font=宋体](调试[/font]>[font=宋体]系统控制台)。[/font][/align][align=left][font=宋体]result,[/font][font=宋体][font=宋体][size=10.5pt]是一个具有文本数据的[/size][/font][/font][font=宋体][size=10.5pt]Flexsim[/size][/font][font=宋体][font=宋体][size=10.5pt]树节点,是服务器的响应将被写入的位置。[/size][/font][/font][/align][align=left][font=宋体]附件:模型[/font][/align]
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|