【问题标题】:Windows phone WebBrowser.Navigating event form dataWindows phone WebBrowser.导航事件表单数据
【发布时间】:2011-11-10 05:23:13
【问题描述】:

我已经为 WebBrowser.Navigating 事件添加了一个处理程序,并注意到它也被 POST 请求触发。在这种情况下,e.Uri 等于页面的当前 Url,但似乎没有任何方法可以获取 POST 请求表单数据。

    void browser_Navigating(object sender, NavigatingEventArgs e)
    {
        var url = e.Uri;
        // there is not something e.Form available here...
    }

你们知道这怎么可能吗?

【问题讨论】:

    标签: c# windows-phone-7 browser


    【解决方案1】:

    根据我最近阅读的内容,WP7 WebBrowser 无法访问请求和响应对象,原因与完整框架相同。基本上它从未实现过。

    理论上可以用来访问表单数据的一种技术是使用本地代理来拦截请求。我相信这需要在 WP7 上使用低级套接字服务器。这是可行的,但是我不确定是否可以像我曾经尝试过的那样以编程方式更改电话代理地址。

    其实还有一种选择。我刚刚遇到this,显然您可以使用SaveToString 来保存当前文档(在导航时)。这将允许您在提交表单之前解析表单数据。

    【讨论】:

    • 不,它没有。 WP7 不允许您访问 .Document。您说的选项是“解析表单数据”,而问题都是关于如何访问表单数据!
    • 只是想帮忙,我不知道如何访问文档。这是有道理的,因为在没有 COM 引用的情况下,在主框架中甚至是不可能的。但是我很确定您无法访问来自 WP7 WebBrowser 的请求或响应数据,原因与我提到的相同。您仍然可以使用代理技术,我认为这是您最好的选择,除非有人知道得更好。我会更新答案。
    • 看起来SaveToString 可能是答案。
    • 很有趣,它现在更有意义了,但仍然存在一个大问题:“如何检测它是否是 POST 请求”。关于代理我试了一下,但我怀疑在 WP7 中实现是可行的。
    • 我会先尝试SaveToString,这似乎是一种相对简单的方法。检测 POST 是一个棘手的问题,如果你能控制网页,你就可以做到。如果没有,可能会检查响应?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多