使用dotnetbrowser.I拦截ajax但是如何获取ajax POST数据内容。
答案 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