56 lines
2.1 KiB
C#
56 lines
2.1 KiB
C#
using CefSharp;
|
|
using CefSharp.Handler;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Api.Framework.Cps.CefSharp1
|
|
{
|
|
/// <summary>
|
|
/// 拦截响应数据
|
|
/// </summary>
|
|
public class CEFResponseHandler : ResourceRequestHandler
|
|
{
|
|
Action<string, string> JsonAction;
|
|
public CEFResponseHandler(Action<string, string> JsonAction)
|
|
{
|
|
this.JsonAction = JsonAction;
|
|
}
|
|
|
|
private readonly System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
|
|
|
|
protected override IResponseFilter GetResourceResponseFilter(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response)
|
|
{
|
|
var sss = new CefSharp.ResponseFilter.StreamResponseFilter(memoryStream);
|
|
return sss;
|
|
}
|
|
|
|
protected override void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
|
|
{
|
|
//You can now get the data from the stream
|
|
var bytes = memoryStream.ToArray();
|
|
//var str1 = System.Text.Encoding.UTF8.GetString(bytes);
|
|
//Console.WriteLine(str1 + " = str1");
|
|
|
|
//if (str1.Contains("优芙"))
|
|
//{
|
|
|
|
//}
|
|
|
|
//https://buyin.jinritemai.com/api/author/order/details?author_app_id=1128&user_id=1460607342872671&start_time=1625036432&end_time=1625641232&time_type=1&page=1&pageSize=20&_signature=_02B4Z6wo00101S-ErAQAAIDCEAIaIFYsB.0vgKiAACsHDhdlaobXsro5mjL-ohtCATVjsCaDIQPNiWIbrQwGsR5suxHYJOJ2oQ6unSqn.loaNiMcqo.PA4VvXk0FA8ueolBWm739wlv1HXZ64a
|
|
if (response.Charset == "utf-8" && request.Url.Contains("buyin.jinritemai.com/api/author/order/details?"))
|
|
{
|
|
var str = System.Text.Encoding.UTF8.GetString(bytes);
|
|
|
|
JsonAction?.Invoke(request.Url, str);
|
|
}
|
|
else
|
|
{
|
|
//Deal with different encoding here
|
|
}
|
|
}
|
|
}
|
|
}
|