• 客户端打开浏览器post提交数据


    客户端请求url提交post数据的方式很多,

    例如HttpWebRequest,HttpClient, 或者第三方的RestSharp以及Flurl 等.

    使用也比较简单方便,资料一搜一大堆,不重点写了.

    这里主要记录一种使用客户端登录,并且点击触发单点登录到浏览器页面跳转的一种方式.

    客户端程序可以轻松启动电脑上的默认浏览器程序,也可以轻松使用浏览器Get请求一个URL地址,但是get请求只能通过QueryString传递可见参数(不论是否对字符进行加密,QueryString是可见的)

    而不能直接操作到第三方浏览器行为post数据提交,只能间接通过html+js操作.

    很多人用到的方法,是对客户端内嵌一个浏览器,然后进行编程控制.通常的嵌入有 WebBrowser、WebKitBrowser、CefSharp等.

    此类方式的具体步骤可以参考如下链接:

    https://blog.csdn.net/u011235865/article/details/106262780/

    嵌入浏览器的问题很明显,客户端体积增大比较多.

    在非必要嵌入的时候, 可以使用隐藏表单的方式,生成html进行跳转.

    把生成的html保存为一个Html临时文件.

    主要是前端代码,把url123456替换为实际url即可,其它参数自行修改.

    1. <html lang="en">
    2. <head>
    3. <meta charset="UTF-8">
    4. <title>Redirect with POSTtitle>
    5. <script>
    6. // 创建一个隐藏的表单字段
    7. function createHiddenField(name, value) {
    8. var field = document.createElement('input');
    9. field.type = 'hidden';
    10. field.name = name;
    11. field.value = value;
    12. return field;
    13. }
    14. // 页面加载后立即执行的代码
    15. window.onload = function () {
    16. let form = document.getElementById('form');
    17. setTimeout(function () {
    18. form.submit();
    19. },3)
    20. }
    21. script>
    22. head>
    23. <body>
    24. <form action="url123456" method="post" id="form" style="display: none;">
    25. <label for="noticeId">noticeId:label>
    26. <input type="text" id="noticeId" name="noticeId" value="noticeId123456"><br><br>
    27. <label for="prequaRecordId">prequaRecordId:label>
    28. <input type="text" id="prequaRecordId" name="prequaRecordId" value="prequaRecordId123456"><br><br>
    29. <label for="projectId">projectId:label>
    30. <input type="text" id="projectId" name="projectId" value="projectId123456"><br><br>
    31. <label for="packageId">packageId:label>
    32. <input type="text" id="packageId" name="packageId" value="packageId123456"><br><br>
    33. <label for="subjectToken">subjectToken:label>
    34. <input type="text" id="subjectToken" name="subjectToken"
    35. value="subjectToken123456"><br><br>
    36. form>
    37. body>
    38. html>

  • 相关阅读:
    互联网职场人写周报的正确姿势
    CDGA|到底怎么才能做好数据治理呢?
    6. 测度论-期望及其性质
    web手势库Alloyfinger
    驱动仅提供32位刷写的情况下如何完成刷写单数字节
    了解web3,什么是web3
    mybatisplus 笔记
    设计模式:桥接器模式(C++实现)
    没有基础能否学Java
    2022亚太数学杯数学建模竞赛C题(思路、程序......)
  • 原文地址:https://blog.csdn.net/chenhui389/article/details/139435581