Browse Source

获取返回的Json数据

章政 7 năm trước cách đây
mục cha
commit
f1e4c005aa

+ 4 - 0
UAS_Web/UAS_Web.csproj

@@ -80,6 +80,10 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\packages\CefSharp.WinForms.49.0.1\CefSharp\x86\CefSharp.WinForms.dll</HintPath>
     </Reference>
+    <Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+      <HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net40\Newtonsoft.Json.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="System.Xml.Linq" />

+ 1 - 0
UAS_Web/packages.config

@@ -4,4 +4,5 @@
   <package id="cef.redist.x86" version="3.2623.1401" targetFramework="net40" />
   <package id="CefSharp.Common" version="49.0.1" targetFramework="net40" />
   <package id="CefSharp.WinForms" version="49.0.1" targetFramework="net40" />
+  <package id="Newtonsoft.Json" version="11.0.2" targetFramework="net40" />
 </packages>

+ 21 - 3
UAS_Web/tool/BoundObject.cs

@@ -1,4 +1,5 @@
 using CefSharp;
+using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -54,9 +55,26 @@ namespace UAS_Web.tool
 
         public void TestCallback(IJavascriptCallback javascriptCallback)
         {
-            const int taskDelay = 1500;
-
-            //TaskFactory.Run(async () =>
+            //Task.Factory.StartNew(async () =>
+            //{
+            //    using (javascriptCallback)
+            //    {
+            //        //Computer computer = new Computer();
+            //        string response = JsonConvert.SerializeObject(new
+            //        {
+            //            //cpu_id = computer.CPU_Id,
+            //            //disk_id = computer.Disk_Id,
+            //            //host_name = computer.HostName,
+            //            //networkcard = computer.NetworkCard,
+            //            //serialNumber = computer.SerialNumber_Manufacturer_Product.Item1,
+            //            //manufacturer = computer.SerialNumber_Manufacturer_Product.Item2,
+            //            //product = computer.SerialNumber_Manufacturer_Product.Item3,
+            //        });
+            //        //await javascriptCallback.ExecuteAsync(null);
+            //    }
+            //});
+            //const int taskDelay = 1500;
+            //Task.Factory.StartNew(async () =>
             //{
             //    await TaskEx.Delay(taskDelay);
 

+ 11 - 49
UAS_Web/tool/RequestHandler.cs

@@ -2,6 +2,7 @@
 using System;
 using System.IO;
 using System.Runtime.Serialization;
+using System.Windows.Forms;
 
 namespace UAS_Web.tool
 {
@@ -10,12 +11,13 @@ namespace UAS_Web.tool
         public event Action<byte[]> NotifyMsg;
         IResponseFilter IRequestHandler.GetResourceResponseFilter(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response)
         {
-            //Console.WriteLine("GetResourceResponseFilter1");
             var url = new Uri(request.Url);
-            if (url.AbsoluteUri.Contains("http://192.168.253.6/uas_dev/jsps/vendbarcode/login.jsp"))
+            if (url.AbsoluteUri.Contains("action"))
             {
+                Console.WriteLine(request.Url);
                 var filter = FilterManager.CreateFilter(request.Identifier.ToString()) as MessageFilter;
                 string str = System.Text.Encoding.UTF8.GetString(filter.dataAll.ToArray());
+                Console.WriteLine("Response" + str);
                 return filter;
             }
             return null;
@@ -31,82 +33,68 @@ namespace UAS_Web.tool
 
         void IRequestHandler.OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
         {
-            //Console.WriteLine("OnResourceLoadComplete1");
-            if (request.Url.Contains("http://192.168.253.6/uas_dev/jsps/vendbarcode/login.jsp"))
+            if (request.Url.Contains("action"))
             {
+                Console.WriteLine(request.Url);
                 var filter = FilterManager.GetFileter(request.Identifier.ToString()) as MessageFilter;
-                //string str = System.Text.Encoding.UTF8.GetString(filter.dataAll.ToArray());
-                //Console.WriteLine(str);
+                string str = System.Text.Encoding.UTF8.GetString(filter.dataAll.ToArray());
+                Console.WriteLine("Request" + str);
                 filter_NotifyData(filter.dataAll.ToArray());
             }
         }
 
         public bool GetAuthCredentials(IWebBrowser browserControl, IBrowser browser, IFrame frame, bool isProxy, string host, int port, string realm, string scheme, IAuthCallback callback)
         {
-            //Console.WriteLine("GetAuthCredentials");
             return false;
         }
 
-        //public IResponseFilter GetResourceResponseFilter(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response)
-        //{
-        //    Console.WriteLine("GetResourceResponseFilter");
-        //    return new MessageFilter();
-        //}
-
         public bool OnBeforeBrowse(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, bool isRedirect)
         {
-            //Console.WriteLine("OnBeforeBrowse");
             return false;
         }
 
         public CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback)
         {
-            //Console.WriteLine("OnBeforeResourceLoad");
             return CefReturnValue.Continue;
         }
 
         public bool OnCertificateError(IWebBrowser browserControl, IBrowser browser, CefErrorCode errorCode, string requestUrl, ISslInfo sslInfo, IRequestCallback callback)
         {
-            //Console.WriteLine("OnCertificateError");
             return false;
         }
 
         public bool OnOpenUrlFromTab(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, WindowOpenDisposition targetDisposition, bool userGesture)
         {
-            //Console.WriteLine("OnOpenUrlFromTab");
             return false;
         }
 
         public void OnPluginCrashed(IWebBrowser browserControl, IBrowser browser, string pluginPath)
         {
-            //Console.WriteLine("OnPluginCrashed");
+
         }
 
         public bool OnProtocolExecution(IWebBrowser browserControl, IBrowser browser, string url)
         {
-            //Console.WriteLine("OnProtocolExecution");
             return false;
         }
 
         public bool OnQuotaRequest(IWebBrowser browserControl, IBrowser browser, string originUrl, long newSize, IRequestCallback callback)
         {
-            //Console.WriteLine("OnQuotaRequest");
             return false;
         }
 
         public void OnRenderProcessTerminated(IWebBrowser browserControl, IBrowser browser, CefTerminationStatus status)
         {
-            //Console.WriteLine("OnRenderProcessTerminated");
         }
 
         public void OnRenderViewReady(IWebBrowser browserControl, IBrowser browser)
         {
-            //Console.WriteLine("OnRenderViewReady");
+
         }
 
         public void OnResourceLoadComplete(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
         {
-            //Console.WriteLine("OnResourceLoadComplete");
+
         }
 
         public void OnResourceRedirect(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, ref string newUrl)
@@ -116,32 +104,6 @@ namespace UAS_Web.tool
 
         bool IRequestHandler.OnResourceResponse(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response)
         {
-            if (request.Url.ToUpper().Contains(".ACTION"))
-            {
-                Console.WriteLine(request.Url);
-             
-                if (request.PostData != null)
-                {
-                    //for (int i = 0; i < request.PostData.Elements.Count; i++)
-                    //{
-                    //    Console.WriteLine(System.Text.Encoding.UTF8.GetString(request.PostData.Elements[i].Bytes));
-                    //}
-                    SerializationInfo info = new SerializationInfo(typeof(string), new FormatterConverter());
-                    StreamingContext con = new StreamingContext();
-                    response.ResponseHeaders.GetObjectData(info, con);
-                    Console.WriteLine(response.MimeType);
-                }
-            }
-            //Console.WriteLine("OnResourceResponse");
-            //try
-            //{
-            //    var content_length = int.Parse(response.ResponseHeaders["Content-Length"]);
-            //    if (filter != null)
-            //    {
-            //        filter.SetContentLength(content_length);
-            //    }
-            //}   
-            //catch { }
             return false;
         }