0

Use dotnetbrowser.I intercept ajax but how to get ajax POST data content.

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

4

1 回答 1

1

为了拦截 URL 请求的 post 数据,需要重写 'DefaultNetworkDelegate' 类的 'OnBeforeURLRequest' 方法。在这种方法中,您需要将 post 数据强制转换为适当的数据类型,然后获取或设置该数据的键值对。

下面的示例演示了如何截取、打印和修改表单数据。

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

于 2018-02-27T14:39:16.197 回答