如何获取ajax POST数据内容

时间:2018-02-26 10:53:26

标签: dotnetbrowser

使用dotnetbrowser.I拦截ajax但是如何获取ajax POST数据内容。

https://dotnetbrowser.support.teamdev.com/support/solutions/articles/9000130231-intercepting-ajax-response-body

1 个答案:

答案 0 :(得分:1)

为了拦截URL请求的发布数据,您需要覆盖'DefaultNetworkDelegate'类的'OnBeforeURLRequest'方法。在此方法中,您需要将后期数据转换为适当的数据类型,然后获取或设置此数据的键值对。

以下示例演示了如何拦截,打印和修改表单数据。

class AjaxNetworkDelegate : DefaultNetworkDelegate
{
    public override void OnBeforeURLRequest(BeforeURLRequestParams parameters)
    {
        if (parameters.PostData != null && parameters.PostData.ContentType == PostDataContentType.FORM_URL_ENCODED)
        {
            FormData formData = (FormData) parameters.PostData;

            foreach (string pairKey in formData.GetPairKeys())
            {
                Console.WriteLine("Key: " + pairKey);

                foreach (string pairValue in formData.GetPairValues(pairKey))
                {
                    Console.WriteLine("Value: " + pairValue);
                }
            }

            formData.SetPair("somekey", "someValue");

            parameters.PostData = formData;
        }
    }
}

此外,以下文章演示了如何使用不同的帖子数据类型:https://dotnetbrowser.support.teamdev.com/solution/articles/9000110170-modifying-post-put-patch-upload-data