c# cefsharp 获取request的返回数据

 if (memoryStream != null)
{
                            var url = new Uri(request.Url);
                            var data = memoryStream.ToArray();
                            var dataLength = data.Length;

                            var dataAsUtf8String = Encoding.UTF8.GetString(data);
}

无论是POST还是GET都可以获取到数据,这样对开发电商之路,起到了关键性作用,加油!!

 

那么memoryStream 是什么类型,就是这个类型:  private MemoryStream memoryStream;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
使用 CefSharp 截取请求的代码如下: ```csharp using CefSharp; using CefSharp.WinForms; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace CefSharpExample { public partial class MainForm : Form { private ChromiumWebBrowser browser; public MainForm() { InitializeComponent(); InitializeChromium(); } private void InitializeChromium() { CefSettings settings = new CefSettings(); settings.CachePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "CefSharp\\Cache"); Cef.Initialize(settings); browser = new ChromiumWebBrowser("https://www.google.com"); browser.FrameLoadEnd += Browser_FrameLoadEnd; browser.RequestHandler = new RequestHandler(); browser.Dock = DockStyle.Fill; this.Controls.Add(browser); } private void Browser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e) { if (e.Frame.IsMain) { browser.ExecuteScriptAsync("alert('Page loaded.');"); } } public class RequestHandler : IRequestHandler { public bool OnBeforeBrowse(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool isRedirect) { return false; } public bool OnBeforeResourceLoad(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback) { Console.WriteLine(request.Url); return false; } public bool GetAuthCredentials(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, bool isProxy, string host, int port, string realm, string scheme, IAuthCallback callback) { return false; } public bool OnCertificateError(IWebBrowser chromiumWebBrowser, IBrowser browser, CefErrorCode errorCode, string requestUrl, ISslInfo sslInfo, IRequestCallback callback) { return false; } public void OnPluginCrashed(IWebBrowser chromiumWebBrowser, IBrowser browser, string pluginPath) { } public CefReturnValue OnBeforeResourceLoad(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResourceRequestCallback callback) { return CefReturnValue.Continue; } public bool OnResourceResponse(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response) { return false; } public void OnRenderProcessTerminated(IWebBrowser chromiumWebBrowser, IBrowser browser, CefTerminationStatus status) { } public bool OnQuotaRequest(IWebBrowser chromiumWebBrowser, IBrowser browser, string originUrl, long newSize, IRequestCallback callback) { return false; } public void OnResourceRedirect(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, ref string newUrl) { } public bool OnProtocolExecution(IWebBrowser chromiumWebBrowser, IBrowser browser, string url) { return false; } public void OnRenderViewReady(IWebBrowser chromiumWebBrowser, IBrowser browser) { } public bool OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength) { return false; } public void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, HttpStatusCode status) { } public void OnProtocolExecutionComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, string url, bool wasSuccessful) { } public bool OnBeforeBrowse(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool userGesture, bool isRedirect) { return false; } public void OnDocumentAvailableInMainFrame(IWebBrowser chromiumWebBrowser, IBrowser browser) { } public void OnFrameAttached(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame) { } public void OnFrameDetached(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame) { } public void OnPluginCrashed(IWebBrowser chromiumWebBrowser, IBrowser browser, string pluginPath, string pluginVersion) { } public void OnRenderFrameReady(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame) { } public bool OnResourceRedirect(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response) { return false; } } } } ``` 在这个例子中,我们创建了一个 `ChromiumWebBrowser` 控件并访问了 Google 主页。我们在 `RequestHandler` 类中实现了 `OnBeforeResourceLoad` 方法来截取请求,并在控制台输出请求的 URL。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值