From e9f5ca3c3c6793b7af18db2ec698a520edb5d4c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=91=ABIntel?= <lfxwd@126.com>
Date: Thu, 17 Dec 2020 14:18:06 +0800
Subject: [PATCH] =?UTF-8?q?2020-12-17=20=20V2.0.2012.1701=20*.[=E6=94=B9?=
 =?UTF-8?q?=E8=BF=9B]=E5=BD=93=E4=BB=A5json=E6=A8=A1=E5=BC=8Fpost=E6=95=B0?=
 =?UTF-8?q?=E6=8D=AE=E6=97=B6,=E8=87=AA=E5=8A=A8=E8=BD=AC=E7=A0=81json?=
 =?UTF-8?q?=E4=B8=AD=E7=9A=84=E4=B8=AD=E6=96=87=E3=80=82=20*.[=E6=94=B9?=
 =?UTF-8?q?=E8=BF=9B]=E4=BF=AE=E5=A4=8Djson=E6=9F=A5=E7=9C=8B=E5=99=A8?=
 =?UTF-8?q?=E6=8B=AC=E5=8F=B7=E6=8A=98=E5=8F=A0=E4=B8=8D=E6=AD=A3=E7=A1=AE?=
 =?UTF-8?q?=E7=9A=84BUG=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Bin/Debug/SuperDesign/SuperDesign.exe         |  Bin 352256 -> 352256 bytes
 Source/.vs/开发辅助工具/v16/.suo              |  Bin 242176 -> 242176 bytes
 Source/开发辅助工具/Controls/MingFolding.cs   |   18 +-
 .../开发辅助工具/Properties/AssemblyInfo.cs   |    4 +-
 Source/开发辅助工具/Tools/FrmJson.cs          |  520 +++---
 Source/开发辅助工具/Tools/FrmWebGet.cs        | 1554 +++++++++--------
 6 files changed, 1049 insertions(+), 1047 deletions(-)

diff --git a/Bin/Debug/SuperDesign/SuperDesign.exe b/Bin/Debug/SuperDesign/SuperDesign.exe
index 92abc9e4668b7948fd34268684de5f9d16e26d68..dc00c2824aa0c21ee32794e661ece9131ff8cd9a 100644
GIT binary patch
delta 42504
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
G?f(zcWSVIJ

delta 42145
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%0DY@n#F
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%0DiY?RdoX&cGL=W<-aS$NY5HZ
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
ad_GWXIsYw-e;(W3(9Oj&zLt|*_x}T@Y&XdO

diff --git a/Source/.vs/开发辅助工具/v16/.suo b/Source/.vs/开发辅助工具/v16/.suo
index 1e358df1c77407fe7179a2b3b5b22ad08c650d02..ea6b323f49973776585b9398c47567c7a5f89634 100644
GIT binary patch
delta 10068
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
K<H)&F1pYr^Z=`Gh

delta 10165
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

diff --git a/Source/开发辅助工具/Controls/MingFolding.cs b/Source/开发辅助工具/Controls/MingFolding.cs
index b3fe503..a27fc76 100644
--- a/Source/开发辅助工具/Controls/MingFolding.cs
+++ b/Source/开发辅助工具/Controls/MingFolding.cs
@@ -52,7 +52,7 @@ namespace JackWangCUMT.WinForm
                 {
                     startLines.Push(i);
                 }
-                if (text_trim.StartsWith("}")) // Look for method endings
+                if (text_trim.StartsWith("}") || text_trim.EndsWith("},")) // Look for method endings
                 {
                     if (startLines.Count > 0)
                     {
@@ -60,23 +60,11 @@ namespace JackWangCUMT.WinForm
                         list.Add(new FoldMarker(document, start, document.GetLineSegment(start).Length, i, 57, FoldType.TypeBody, "...}"));
                     }
                 }
-                if (text_trim.StartsWith("[")) // Look for method starts
+                if (text_trim.StartsWith("[")|| text_trim.EndsWith("[")) // Look for method starts
                 {
                     startLines.Push(i);
                 }
-                if (text_trim.StartsWith("]")) // Look for method endings
-                {
-                    if (startLines.Count > 0)
-                    {
-                        int start = startLines.Pop();
-                        list.Add(new FoldMarker(document, start, document.GetLineSegment(start).Length, i, 57, FoldType.TypeBody, "...]"));
-                    }
-                }
-                if (text_trim.EndsWith("[")) // Look for method starts
-                {
-                    startLines.Push(i);
-                }
-                if (text_trim.StartsWith("]")) // Look for method endings
+                if (text_trim.StartsWith("]") || text_trim.EndsWith("],")) // Look for method endings
                 {
                     if (startLines.Count > 0)
                     {
diff --git a/Source/开发辅助工具/Properties/AssemblyInfo.cs b/Source/开发辅助工具/Properties/AssemblyInfo.cs
index bb0dc2a..15dd497 100644
--- a/Source/开发辅助工具/Properties/AssemblyInfo.cs
+++ b/Source/开发辅助工具/Properties/AssemblyInfo.cs
@@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
 // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
 // 方法是按如下所示使用“*”: :
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("2.0.2012.1501")]
-[assembly: AssemblyFileVersion("2.0.2012.1501")]
\ No newline at end of file
+[assembly: AssemblyVersion("2.0.2012.1701")]
+[assembly: AssemblyFileVersion("2.0.2012.1701")]
\ No newline at end of file
diff --git a/Source/开发辅助工具/Tools/FrmJson.cs b/Source/开发辅助工具/Tools/FrmJson.cs
index 2c4f8ed..e91f830 100644
--- a/Source/开发辅助工具/Tools/FrmJson.cs
+++ b/Source/开发辅助工具/Tools/FrmJson.cs
@@ -1,266 +1,266 @@
-using ICSharpCode.TextEditor.Document;
-using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using WeifenLuo.WinFormsUI.Docking;
-
-namespace 开发辅助工具.Tools
-{
-    public partial class FrmJson : DockContent
-    {
-        public FrmJson()
-        {
-            InitializeComponent();
-            textEditorControl1.Document.FoldingManager.FoldingStrategy = new JackWangCUMT.WinForm.MingFolding();
-        }
-        private void LoadTreeList(TreeNodeCollection nodes,JObject jo)
-        {
-            foreach (var item in jo)
-            {
-                if (item.Value.HasValues)
-                {
-                    var node = nodes.Add(item.Key.ToString());
-                    node.Tag = new JsonInfo() { name = item.Key.ToString(), value = item.Value.ToString() };
-                    try
-                    {
-                        JArray jar = JArray.Parse(item.Value.ToString());
-                        if (jar != null)
-                        {
-                            for (int i = 0; i < jar.Count; i++)
-                            {
-                                var node1 = node.Nodes.Add(i.ToString());
-                                node.Tag = new JsonInfo() { name = item.Key.ToString(), value = item.Value.ToString() };
-                                LoadTreeList(node1.Nodes, (JObject)JsonConvert.DeserializeObject(jar[i].ToString()));
-                                //TreeNode new_child = new TreeNode();
-                                //new_child.Text = jar[i].ToString();
-                                //node.Nodes.Add(new_child);
-                            }
-                        }
-                    }
-                    catch(Exception)
-                    { LoadTreeList(node.Nodes, (JObject)JsonConvert.DeserializeObject(item.Value.ToString())); }
-                    
-                    //JArray jar = JArray.Parse(item.Value.ToString());
-                    //if (jar.Count != 0)
-                    {
-                        
-                        //for (int i = 0; i < jar.Count; i++)
-                        //{
-                        //    TreeNode new_child = new TreeNode();
-                        //    new_child.Text = jar[i].ToString();
-                        //    nodes.Add(new_child);
-                        //}
-                    }
-                }
-                else
-                {
-                    var node = nodes.Add(item.ToString());
-                    node.Tag = new JsonInfo() { name = item.Key.ToString(), value = item.Value.ToString() };
-                }
-            }
-        }
-        private void BtnFormat_Click(object sender, EventArgs e)
-        {
-            string json_text = textEditorControl1.Text;
-            treeView1.Nodes.Clear();
-            //if (Manager.Json.IsJson(json_text))
-            {     
-                try
-                {
-                    textEditorControl1.Document.TextContent = Manager.Json.ConvertJsonString(json_text);
-                    textEditorControl1.Refresh();
-                    JObject jo = null;
-                    if (Manager.Json.IsArray(json_text))
-                    {
-                        var node2 = treeView1.Nodes.Add("0");
-                        JArray jar = JArray.Parse(json_text);
-                        ScanArray(node2.Nodes, jar);
-                    }
-                    else
-                    {
-                        jo = (JObject)JsonConvert.DeserializeObject(json_text);
-                        Scan(treeView1.Nodes, jo);
-                    }
-                    void Scan(TreeNodeCollection nodes, JObject _jo)
-                    {
-                        IEnumerable<JProperty> properties = _jo.Properties();
-                        foreach (JProperty item in properties)
-                        {
-                            if (item.Value.Type == JTokenType.Array)
-                            {
-                                var node2 = nodes.Add(item.Name);
-                                node2.Tag = new JsonInfo() { name = item.Name, value = item.Value.ToString() };
-                                JArray jar = JArray.Parse(item.Value.ToString());
-                                ScanArray(node2.Nodes, jar);
-                            }
-                            else if (item.Value.Type == JTokenType.Object)
-                            {
-                                var node2 = nodes.Add(item.Name);
-                                node2.Tag = new JsonInfo() { name = item.Name, value = item.Value.ToString() };
-                                Scan(node2.Nodes, (JObject)JsonConvert.DeserializeObject(item.Value.ToString()));
-                            }
-                            else {
-                                var node = nodes.Add(item.Name + ":" + item.Value + "|" + item.Value.Type.ToString());
-                                node.Tag = new JsonInfo() { name = item.Name, value = item.Value.ToString() };
-                            }
-                            //Console.WriteLine(item.Name + ":" + item.Value);
-                        }
-                        //var values = _jo.Values<JProperty>();
-                        //foreach (var item in values)
-                        //{
-                        //    var va = item.Value<JProperty>().Children.Children<JProperty>();
-                        //    var node = nodes.Add(item.ToString());
-                        //    //if(item.HasValues)
-                        //    //Scan(node.Nodes,(JObject)JsonConvert.DeserializeObject(item.ToString()));
-                        //}
-                    }
-                    void ScanArray(TreeNodeCollection nodes, JArray jar)
-                    {
-                        if (jar != null)
-                        {
-                            for (int i = 0; i < jar.Count; i++)
-                            {
-                                var node3 = nodes.Add(i.ToString());
-                                if (jar[i].Type == JTokenType.Object)
-                                {
-                                    Scan(node3.Nodes, (JObject)jar[i]);
-                                }
-                                else
-                                {
-                                    node3.Nodes.Add(jar[i].ToString());
-                                    node3.Tag = new JsonInfo() { name = jar[i].ToString() };
-                                }
-                            }
-                        }
-                    }
-                    //if (Manager.Json.IsArray(json_text))
-                    //{
-                    //    JArray jar = JArray.Parse(json_text);
-                    //    if (jar != null)
-                    //    {
-                    //        for (int i = 0; i < jar.Count; i++)
-                    //        {
-                    //            var node1 = treeView1.Nodes.Add(i.ToString());
-                    //            LoadTreeList(node1.Nodes, (JObject)JsonConvert.DeserializeObject(jar[i].ToString()));
-                    //            //TreeNode new_child = new TreeNode();
-                    //            //new_child.Text = jar[i].ToString();
-                    //            //node.Nodes.Add(new_child);
-                    //        }
-                    //    }
-                    //}
-                    //else
-                    //{
-                    //    jo = (JObject)JsonConvert.DeserializeObject(json_text);
-                    //}
-                    //LoadTreeList(treeView1.Nodes,jo);
-                    //for (int i = 0; i < jo.Count; i++)
-                    //{
-                    //    treeView1.Nodes.Add(jo..ToString());
-                    //}
-                }
-                catch(Exception ex)
-                {
-                    MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Information);
-                }
-            }
-            //else
-            //{
-            //    MessageBox.Show("无效的Json内容", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
-            //    textEditorControl1.Document.TextContent = json_text;
-            //    textEditorControl1.Refresh();
-            //}
-        }
-        public void LoadJson(string json_text)
-        {
-            textEditorControl1.Document.TextContent = json_text;
-            textEditorControl1.Refresh();
-            BtnFormat.PerformClick();
-        }
-        private void 复制键名ToolStripMenuItem_Click(object sender, EventArgs e)
-        {
-            if (treeView1.SelectedNode == null) { return; }
-            JsonInfo item = (JsonInfo)treeView1.SelectedNode.Tag;
-            ryCommon.RyFiles.CopyToClip(item.name);
-        }
-
-        private void 复制键值ToolStripMenuItem_Click(object sender, EventArgs e)
-        {
-            if (treeView1.SelectedNode == null) { return; }
-            if (treeView1.SelectedNode.Tag == null) { return; }
-            JsonInfo item = (JsonInfo)treeView1.SelectedNode.Tag;
-            ryCommon.RyFiles.CopyToClip(item.value);
-        }
-
-        private void BtnPasteJson_Click(object sender, EventArgs e)
-        {
-            textEditorControl1.BeginUpdate();
-            textEditorControl1.Document.TextContent = Clipboard.GetText();
-            textEditorControl1.Refresh();
-            textEditorControl1.EndUpdate();
-            BtnFormat.PerformClick();
-        }
-
-        private void BtnCopyJson_Click(object sender, EventArgs e)
-        {
-            ryCommon.RyFiles.CopyToClip(textEditorControl1.Text);
-        }
-
-        private void FrmJson_Load(object sender, EventArgs e)
-        {
-            textEditorControl1.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy("JSON");
-        }
-
-        private void TreeView1_MouseDown(object sender, MouseEventArgs e)
-        {
-            if (e.Button == MouseButtons.Right)//判断你点的是不是右键
-            {
-                Point ClickPoint = new Point(e.X, e.Y);
-                TreeNode CurrentNode = treeView1.GetNodeAt(ClickPoint);
-                if (CurrentNode != null)//判断你点的是不是一个节点
-                {
-                    treeView1.SelectedNode = CurrentNode;//选中这个节点
-                }
-            }
-        }
-
-        private void 展开ToolStripMenuItem_Click(object sender, EventArgs e)
-        {
-            treeView1.ExpandAll();
-        }
-
-        private void 折叠ToolStripMenuItem_Click(object sender, EventArgs e)
-        {
-            treeView1.CollapseAll();
-        }
-
-        private void CopyJsonByCHS_Click(object sender, EventArgs e)
-        {
-            try
-            {
-                JObject jo = (JObject)JsonConvert.DeserializeObject(textEditorControl1.Text);
-                var aa = Newtonsoft.Json.JsonConvert.SerializeObject(jo, new Newtonsoft.Json.JsonSerializerSettings() { StringEscapeHandling = Newtonsoft.Json.StringEscapeHandling.EscapeNonAscii });
-                ryCommon.RyFiles.CopyToClip(aa);
-            }
-            catch(Exception ex) {
-                MessageBox.Show(ex.Message, "出错", MessageBoxButtons.OK, MessageBoxIcon.Information);
-            }
+using ICSharpCode.TextEditor.Document;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using WeifenLuo.WinFormsUI.Docking;
+
+namespace 开发辅助工具.Tools
+{
+    public partial class FrmJson : DockContent
+    {
+        public FrmJson()
+        {
+            InitializeComponent();
+            textEditorControl1.Document.FoldingManager.FoldingStrategy = new JackWangCUMT.WinForm.MingFolding();
+        }
+        private void LoadTreeList(TreeNodeCollection nodes,JObject jo)
+        {
+            foreach (var item in jo)
+            {
+                if (item.Value.HasValues)
+                {
+                    var node = nodes.Add(item.Key.ToString());
+                    node.Tag = new JsonInfo() { name = item.Key.ToString(), value = item.Value.ToString() };
+                    try
+                    {
+                        JArray jar = JArray.Parse(item.Value.ToString());
+                        if (jar != null)
+                        {
+                            for (int i = 0; i < jar.Count; i++)
+                            {
+                                var node1 = node.Nodes.Add(i.ToString());
+                                node.Tag = new JsonInfo() { name = item.Key.ToString(), value = item.Value.ToString() };
+                                LoadTreeList(node1.Nodes, (JObject)JsonConvert.DeserializeObject(jar[i].ToString()));
+                                //TreeNode new_child = new TreeNode();
+                                //new_child.Text = jar[i].ToString();
+                                //node.Nodes.Add(new_child);
+                            }
+                        }
+                    }
+                    catch(Exception)
+                    { LoadTreeList(node.Nodes, (JObject)JsonConvert.DeserializeObject(item.Value.ToString())); }
+                    
+                    //JArray jar = JArray.Parse(item.Value.ToString());
+                    //if (jar.Count != 0)
+                    {
+                        
+                        //for (int i = 0; i < jar.Count; i++)
+                        //{
+                        //    TreeNode new_child = new TreeNode();
+                        //    new_child.Text = jar[i].ToString();
+                        //    nodes.Add(new_child);
+                        //}
+                    }
+                }
+                else
+                {
+                    var node = nodes.Add(item.ToString());
+                    node.Tag = new JsonInfo() { name = item.Key.ToString(), value = item.Value.ToString() };
+                }
+            }
+        }
+        private void BtnFormat_Click(object sender, EventArgs e)
+        {
+            string json_text = textEditorControl1.Text;
+            treeView1.Nodes.Clear();
+            //if (Manager.Json.IsJson(json_text))
+            {     
+                try
+                {
+                    textEditorControl1.Document.TextContent = Manager.Json.ConvertJsonString(json_text);
+                    textEditorControl1.Refresh();
+                    JObject jo = null;
+                    if (Manager.Json.IsArray(json_text))
+                    {
+                        var node2 = treeView1.Nodes.Add("0");
+                        JArray jar = JArray.Parse(json_text);
+                        ScanArray(node2.Nodes, jar);
+                    }
+                    else
+                    {
+                        jo = (JObject)JsonConvert.DeserializeObject(json_text);
+                        Scan(treeView1.Nodes, jo);
+                    }
+                    void Scan(TreeNodeCollection nodes, JObject _jo)
+                    {
+                        IEnumerable<JProperty> properties = _jo.Properties();
+                        foreach (JProperty item in properties)
+                        {
+                            if (item.Value.Type == JTokenType.Array)
+                            {
+                                var node2 = nodes.Add(item.Name);
+                                node2.Tag = new JsonInfo() { name = item.Name, value = item.Value.ToString() };
+                                JArray jar = JArray.Parse(item.Value.ToString());
+                                ScanArray(node2.Nodes, jar);
+                            }
+                            else if (item.Value.Type == JTokenType.Object)
+                            {
+                                var node2 = nodes.Add(item.Name);
+                                node2.Tag = new JsonInfo() { name = item.Name, value = item.Value.ToString() };
+                                Scan(node2.Nodes, (JObject)JsonConvert.DeserializeObject(item.Value.ToString()));
+                            }
+                            else {
+                                var node = nodes.Add(item.Name + ":" + item.Value + "|" + item.Value.Type.ToString());
+                                node.Tag = new JsonInfo() { name = item.Name, value = item.Value.ToString() };
+                            }
+                            //Console.WriteLine(item.Name + ":" + item.Value);
+                        }
+                        //var values = _jo.Values<JProperty>();
+                        //foreach (var item in values)
+                        //{
+                        //    var va = item.Value<JProperty>().Children.Children<JProperty>();
+                        //    var node = nodes.Add(item.ToString());
+                        //    //if(item.HasValues)
+                        //    //Scan(node.Nodes,(JObject)JsonConvert.DeserializeObject(item.ToString()));
+                        //}
+                    }
+                    void ScanArray(TreeNodeCollection nodes, JArray jar)
+                    {
+                        if (jar != null)
+                        {
+                            for (int i = 0; i < jar.Count; i++)
+                            {
+                                var node3 = nodes.Add(i.ToString());
+                                if (jar[i].Type == JTokenType.Object)
+                                {
+                                    Scan(node3.Nodes, (JObject)jar[i]);
+                                }
+                                else
+                                {
+                                    node3.Nodes.Add(jar[i].ToString());
+                                    node3.Tag = new JsonInfo() { name = jar[i].ToString() };
+                                }
+                            }
+                        }
+                    }
+                    //if (Manager.Json.IsArray(json_text))
+                    //{
+                    //    JArray jar = JArray.Parse(json_text);
+                    //    if (jar != null)
+                    //    {
+                    //        for (int i = 0; i < jar.Count; i++)
+                    //        {
+                    //            var node1 = treeView1.Nodes.Add(i.ToString());
+                    //            LoadTreeList(node1.Nodes, (JObject)JsonConvert.DeserializeObject(jar[i].ToString()));
+                    //            //TreeNode new_child = new TreeNode();
+                    //            //new_child.Text = jar[i].ToString();
+                    //            //node.Nodes.Add(new_child);
+                    //        }
+                    //    }
+                    //}
+                    //else
+                    //{
+                    //    jo = (JObject)JsonConvert.DeserializeObject(json_text);
+                    //}
+                    //LoadTreeList(treeView1.Nodes,jo);
+                    //for (int i = 0; i < jo.Count; i++)
+                    //{
+                    //    treeView1.Nodes.Add(jo..ToString());
+                    //}
+                }
+                catch(Exception ex)
+                {
+                    MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Information);
+                }
+            }
+            //else
+            //{
+            //    MessageBox.Show("无效的Json内容", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+            //    textEditorControl1.Document.TextContent = json_text;
+            //    textEditorControl1.Refresh();
+            //}
+        }
+        public void LoadJson(string json_text)
+        {
+            textEditorControl1.Document.TextContent = json_text;
+            textEditorControl1.Refresh();
+            BtnFormat.PerformClick();
+        }
+        private void 复制键名ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            if (treeView1.SelectedNode == null) { return; }
+            JsonInfo item = (JsonInfo)treeView1.SelectedNode.Tag;
+            ryCommon.RyFiles.CopyToClip(item.name);
+        }
+
+        private void 复制键值ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            if (treeView1.SelectedNode == null) { return; }
+            if (treeView1.SelectedNode.Tag == null) { return; }
+            JsonInfo item = (JsonInfo)treeView1.SelectedNode.Tag;
+            ryCommon.RyFiles.CopyToClip(item.value);
+        }
+
+        private void BtnPasteJson_Click(object sender, EventArgs e)
+        {
+            textEditorControl1.BeginUpdate();
+            textEditorControl1.Document.TextContent = Clipboard.GetText();
+            textEditorControl1.Refresh();
+            textEditorControl1.EndUpdate();
+            BtnFormat.PerformClick();
+        }
+
+        private void BtnCopyJson_Click(object sender, EventArgs e)
+        {
+            ryCommon.RyFiles.CopyToClip(textEditorControl1.Text);
+        }
+
+        private void FrmJson_Load(object sender, EventArgs e)
+        {
+            textEditorControl1.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy("JSON");
+        }
+
+        private void TreeView1_MouseDown(object sender, MouseEventArgs e)
+        {
+            if (e.Button == MouseButtons.Right)//判断你点的是不是右键
+            {
+                Point ClickPoint = new Point(e.X, e.Y);
+                TreeNode CurrentNode = treeView1.GetNodeAt(ClickPoint);
+                if (CurrentNode != null)//判断你点的是不是一个节点
+                {
+                    treeView1.SelectedNode = CurrentNode;//选中这个节点
+                }
+            }
+        }
+
+        private void 展开ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            treeView1.ExpandAll();
+        }
+
+        private void 折叠ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            treeView1.CollapseAll();
+        }
+
+        private void CopyJsonByCHS_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                JObject jo = (JObject)JsonConvert.DeserializeObject(textEditorControl1.Text);
+                var aa = Newtonsoft.Json.JsonConvert.SerializeObject(jo, new Newtonsoft.Json.JsonSerializerSettings() { StringEscapeHandling = Newtonsoft.Json.StringEscapeHandling.EscapeNonAscii });
+                ryCommon.RyFiles.CopyToClip(aa);
+            }
+            catch(Exception ex) {
+                MessageBox.Show(ex.Message, "出错", MessageBoxButtons.OK, MessageBoxIcon.Information);
+            }
         }
 
         private void textEditorControl1_TextChanged(object sender, EventArgs e)
         {
             textEditorControl1.Document.FoldingManager.UpdateFoldings(null, null);
         }
-    }
-    public class JsonInfo
-    {
-        public string name = "";
-        public string value = "";
-    }
-}
+    }
+    public class JsonInfo
+    {
+        public string name = "";
+        public string value = "";
+    }
+}
diff --git a/Source/开发辅助工具/Tools/FrmWebGet.cs b/Source/开发辅助工具/Tools/FrmWebGet.cs
index 787b068..9ac1d59 100644
--- a/Source/开发辅助工具/Tools/FrmWebGet.cs
+++ b/Source/开发辅助工具/Tools/FrmWebGet.cs
@@ -1,789 +1,803 @@
-using DotNet4.Utilities;
-using ICSharpCode.TextEditor.Document;
-using ryCommon;
-using ryCommonDb;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Windows.Forms;
-using WeifenLuo.WinFormsUI.Docking;
-using 开发辅助工具.Manager;
-
-namespace 开发辅助工具.Tools
-{
-    public partial class FrmWebGet : DockContent
-    {
-        public FrmWebGet()
-        {
-            InitializeComponent();
-            LoadPram();
+using DotNet4.Utilities;
+using ICSharpCode.TextEditor.Document;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using ryCommon;
+using ryCommonDb;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Windows.Forms;
+using WeifenLuo.WinFormsUI.Docking;
+using 开发辅助工具.Manager;
+
+namespace 开发辅助工具.Tools
+{
+    public partial class FrmWebGet : DockContent
+    {
+        public FrmWebGet()
+        {
+            InitializeComponent();
+            LoadPram();
             tabControl2.SelectedTab = tabPage12;
-            Te_Format.Document.FoldingManager.FoldingStrategy = new JackWangCUMT.WinForm.MingFolding();
-        }
-        private void LoadPram()
-        {
-            Te_Format.IsReadOnly = true;
-            CbbContentType.SelectedIndex = 0;
-            CbbUserAgent.SelectedIndex = 0;
-            CbbEncoding.SelectedIndex = 0;
-            CbbTimeout.SelectedIndex = CbbTimeout.Items.Count-2;
-            CbbWriteTimeout.SelectedIndex = CbbWriteTimeout.Items.Count - 2;
-            CbbUserAgent.Items.AddRange(new UserAgentInfo[]{
-                new UserAgentInfo() { name = "QQ浏览器极速模式", useragent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6776.400 QQBrowser/10.3.2601.400" },
-                new UserAgentInfo() { name = "360浏览器极速模式", useragent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" },
-                new UserAgentInfo() { name = "QQ浏览器手机版", useragent = "Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36" },
-                new UserAgentInfo() { name = "微信", useragent = "Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.2.380" },
-                new UserAgentInfo() { name = "iPhone", useragent = "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C28 Safari/419.3" },
-                new UserAgentInfo() { name = "安卓", useragent = "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03S) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19" },
-            });
-            TxtPost.AddSeparatorMenu();
-            TxtPost.AddMenu("将选定项进行Url编码(UTF8)", "").Click += new EventHandler((object sender2, EventArgs e2) =>
-            {
-                RyWeb.QuickWeb web = new RyWeb.QuickWeb();
-                TxtPost.SelectedText = web.UrlEncode(TxtPost.SelectedText, Encoding.UTF8);
-            });
-            TxtPost.AddMenu("将选定项进行Url编码(GB2312)", "").Click += new EventHandler((object sender2, EventArgs e2) =>
-            {
-                RyWeb.QuickWeb web = new RyWeb.QuickWeb();
-                TxtPost.SelectedText = web.UrlEncode(TxtPost.SelectedText, Encoding.GetEncoding("GB2312"));
-            });
-            TxtPost.AddSeparatorMenu();
-            TxtPost.AddMenu("将选定项进行Url解码(UTF8)", "").Click += new EventHandler((object sender2, EventArgs e2) =>
-            {
-                TxtPost.SelectedText = RyWeb.WebDecode.UrlDecode(TxtPost.SelectedText, Encoding.UTF8);
-            });
-            TxtPost.AddMenu("将选定项进行Url解码(GB2312)", "").Click += new EventHandler((object sender2, EventArgs e2) =>
-            {
-                TxtPost.SelectedText = RyWeb.WebDecode.UrlDecode(TxtPost.SelectedText, Encoding.GetEncoding("GB2312"));
-            });
-            TxtPost.AddSeparatorMenu();
-            TxtPost.AddMenu("查询选定项对应的时间", "unixtime").Click += new EventHandler((object sender2, EventArgs e2) =>
-            {
-                MessageBox.Show("当前选中的时间是:" + RyDate.UnixTimeToDateTime(TxtPost.SelectedText).ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
-            });
-            TxtPost.AddMenu("插入时间戳", "").Click += new EventHandler((object sender2, EventArgs e2) =>
-            {
-                SuperDesign.Controls.FrmInsertUnixTime frm = new SuperDesign.Controls.FrmInsertUnixTime();
-                frm.Icon = Icon;
-                var text = TxtPost.SelectedText;
-                if(text.Length>4 && text.IsInt())
-                {
-                    frm.dateTimePickerEX1.Value = RyDate.UnixTimeToDateTime(text);
-                }
-                if (frm.ShowDialog()==DialogResult.OK)
-                {
-                    TxtPost.SelectedText = RyDate.DateTimeToUnixTime(frm.dateTimePickerEX1.Value).ToString();
-                }
-               // MessageBox.Show("当前选中的时间是:" + RyDate.UnixTimeToDateTime(TxtPost.SelectedText).ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
-            });
-            TxtPost.OnMenuOpening += TxtPost_OnMenuOpening;
-        }
-
-        private void TxtPost_OnMenuOpening(object sender, CancelEventArgs e)
-        {
-            var item= TxtPost.GetMenuItem("unixtime");
-            if(item!=null)
-            {
-                var text = TxtPost.SelectedText;
-                item.Visible = text.IsInt() && text.Length>4;
-            }
-        }
-
-        private bool IsExit = false;
-        private bool IsRunning = false;
-        Thread th;
-        private void BtnRunHtml_Click(object sender, EventArgs e)
-        {
-            if (IsRunning) {
-                IsExit = true;
-                BtnRunHtml.Text = "停止中"; ;
-                if (th!=null && th.IsAlive)
-                {
-                    th.Abort();
-                }
-                return;
-            }
-            IsExit = false;
-            IsRunning = true;
-            BtnRunHtml.Text = "停止执行"; ;
-            #region 将当前设置赋值到查询
-            this.RichHtml.Text = "正在获取数据...";
-            Te_Format.Text = "正在获取数据...";
-            this.RichCookie.Text = "";
-            RichHeader.Text = "";
-            RichStatus.Text = "";
-            extendedWebBrowser1.LoadStrings("");
-            if (TxtUrl.Text.IndexOfEx("//") == 0)
-            {
-                TxtUrl.Text = "http:" + TxtUrl.Text;
-            }
-            else if (TxtUrl.Text.IndexOfEx("://") == 0)
-            {
-                TxtUrl.Text = "http" + TxtUrl.Text;
-            }
-            else if (TxtUrl.Text.IndexOfEx("http") != 0)
-            {
-                TxtUrl.Text = "http://" + TxtUrl.Text.TrimStart('/');
-            }
-
-            string str = "get";
-            if (RbGet.Checked)
-            {
-                str = "get";
-            }
-            if (RbPost.Checked)
-            {
-                str = "post";
-            }
-            HttpItem item = new HttpItem
-            {
-                URL = TxtUrl.Text.Trim(),
-                Method = str,
-                IsToLower = this.ChkUrlLower.Checked,
-                Cookie = this.TxtCookie.Text.Trim(),
-                Referer = this.CbbReferer.Text.Trim(),
-                Postdata = this.TxtPost.Text.Trim(),
-                Timeout = Convert.ToInt32(this.CbbTimeout.Text.Replace("秒", string.Empty).Trim()) * 0x3e8,
-                ReadWriteTimeout = Convert.ToInt32(this.CbbWriteTimeout.Text.Replace("秒", string.Empty).Trim()) * 0x3e8,
-                UserAgent = this.CbbUserAgent.Text,
-                ContentType = this.CbbContentType.Text,
-                Allowautoredirect = this.ChkJump.Checked,
-                ProtocolVersion = System.Net.HttpVersion.Version11,
-                ResultType = ChkGetPic.Checked ? ResultType.Byte : ResultType.String,
-            };
-            if (TxtInputHeader.Text.Length > 0)
-            {
-                try
-                {
-                    string[] item_header = TxtInputHeader.Text.Replace("\r", "").Split('\n');
-                    for (int i = 0; i < item_header.Length; i++)
-                    {
-                        item.Header.Add(item_header[i]);
-                        //int iPos = item_header[i].LastIndexOf(":");
-                        //if (iPos > 0)
-                        //{
-                        //    var header_name = item_header[i].Substring(0, iPos);
-                        //    var header_value = item_header[i].Substring(iPos + 1);
-                        //    item.Header.Add(header_name, header_value);
-                        //}
-                    }
-                }
-                catch (Exception exception)
-                {
-                    this.RichHtml.Text = exception.Message;
-                    Te_Format.Text = "";
-                    tabControl2.SelectedIndex = 0;
-                    BtnRunHtml.Text = "执行";
-                    IsRunning = false;
-                    return;
-                }
-            }
-            if (CbbUserAgent.SelectedIndex != -1)
-            {
-                if (CbbUserAgent.SelectedItem is UserAgentInfo)
-                {
-                    item.UserAgent = ((UserAgentInfo)CbbUserAgent.SelectedItem).useragent;
-                }
-            }
-            if (!string.IsNullOrEmpty(this.CbbIp.Text.Trim()))
-            {
-                item.ProxyIp = this.CbbIp.Text.Trim();
-            }
-            if (!this.CbbEncoding.Text.Contains("自动"))
-            {
-                item.Encoding = Encoding.GetEncoding(this.CbbEncoding.Text.Trim());
-            }
-            #endregion
-            if (th != null && th.IsAlive)
-            {
-                th.Abort();
-            }
-            th = new Thread(Start);
-            th.Start();
-            void Start()
-            {
-                try
-                {
-                    var http = new HttpHelper();
-                    DateTime dt = DateTime.Now;
-                    var result = http.GetHtml(item);
-                    DateTime dt_end = DateTime.Now;
-                    _ = this.Invoke(new Action(() =>
-                      {
-                          #region 将获得的结果显示出来
-                          if (result.Html.Length > 1024 * 1024 * 4)
-                          {
-                              this.RichHtml.Text = "获取失败,您要获取的网页超过4MB,暂时无法获取。";
-                              Te_Format.Text = "获取失败,您要获取的网页超过4MB,暂时无法获取。";
-                          }
-                          else
-                          {
-                              if (result.StatusCode == System.Net.HttpStatusCode.Redirect)
-                              {
-                                  if (!ChkJump.Checked)
-                                  {
-                                      switch (MessageBox.Show("当前Url需要跳转,是否勾选跳转重试获取?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
-                                      {
-                                          case DialogResult.Yes:
-                                              ChkJump.Checked = true;
-                                              IsRunning = false;
-                                              BtnRunHtml_Click(sender, e);
-                                              return;
-                                      }
-                                  }
-                              }
-                              RichHtml.Text = string.Empty;
-                              if (this.ChkGetPic.Checked)
-                              {
-                                  pictureBox1.Image = this.ByteArrayToImage(result.ResultByte);
-                                  RichHtml.Visible = false;
-                                  pictureBox1.Visible = true;
-                                  tabControl2.SelectedIndex = 0;
-                                  AddUrl("", TxtUrl.Text);
-                              }
-                              else
-                              {
-                                  this.RichHtml.Text = result.Html;
-                                  if (Manager.Json.IsJson(result.Html))
-                                  {
-                                      Te_Format.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy("JSON");
-                                      Te_Format.Text = Manager.Json.ConvertJsonString(result.Html);
-                                      AddUrl("", TxtUrl.Text);
-                                  }
-                                  else
-                                  {
-                                      string[] _format_html = result.Html.Replace("\r", "").Split('\n');
-                                      string _html = "";
-                                      for (int i = 0; i < _format_html.Length; i++)
-                                      {
-                                          if (_format_html[i].Trim().Length == 0)
-                                          {
-                                              continue;
-                                          }
-                                          if (_html.Length > 0) { _html += "\r\n"; }
-                                          _html += _format_html[i];
-                                      }
+            Te_Format.Document.FoldingManager.FoldingStrategy = new JackWangCUMT.WinForm.MingFolding();
+        }
+        private void LoadPram()
+        {
+            Te_Format.IsReadOnly = true;
+            CbbContentType.SelectedIndex = 0;
+            CbbUserAgent.SelectedIndex = 0;
+            CbbEncoding.SelectedIndex = 0;
+            CbbTimeout.SelectedIndex = CbbTimeout.Items.Count-2;
+            CbbWriteTimeout.SelectedIndex = CbbWriteTimeout.Items.Count - 2;
+            CbbUserAgent.Items.AddRange(new UserAgentInfo[]{
+                new UserAgentInfo() { name = "QQ浏览器极速模式", useragent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6776.400 QQBrowser/10.3.2601.400" },
+                new UserAgentInfo() { name = "360浏览器极速模式", useragent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" },
+                new UserAgentInfo() { name = "QQ浏览器手机版", useragent = "Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36" },
+                new UserAgentInfo() { name = "微信", useragent = "Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.2.380" },
+                new UserAgentInfo() { name = "iPhone", useragent = "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C28 Safari/419.3" },
+                new UserAgentInfo() { name = "安卓", useragent = "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03S) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19" },
+            });
+            TxtPost.AddSeparatorMenu();
+            TxtPost.AddMenu("将选定项进行Url编码(UTF8)", "").Click += new EventHandler((object sender2, EventArgs e2) =>
+            {
+                RyWeb.QuickWeb web = new RyWeb.QuickWeb();
+                TxtPost.SelectedText = web.UrlEncode(TxtPost.SelectedText, Encoding.UTF8);
+            });
+            TxtPost.AddMenu("将选定项进行Url编码(GB2312)", "").Click += new EventHandler((object sender2, EventArgs e2) =>
+            {
+                RyWeb.QuickWeb web = new RyWeb.QuickWeb();
+                TxtPost.SelectedText = web.UrlEncode(TxtPost.SelectedText, Encoding.GetEncoding("GB2312"));
+            });
+            TxtPost.AddSeparatorMenu();
+            TxtPost.AddMenu("将选定项进行Url解码(UTF8)", "").Click += new EventHandler((object sender2, EventArgs e2) =>
+            {
+                TxtPost.SelectedText = RyWeb.WebDecode.UrlDecode(TxtPost.SelectedText, Encoding.UTF8);
+            });
+            TxtPost.AddMenu("将选定项进行Url解码(GB2312)", "").Click += new EventHandler((object sender2, EventArgs e2) =>
+            {
+                TxtPost.SelectedText = RyWeb.WebDecode.UrlDecode(TxtPost.SelectedText, Encoding.GetEncoding("GB2312"));
+            });
+            TxtPost.AddSeparatorMenu();
+            TxtPost.AddMenu("查询选定项对应的时间", "unixtime").Click += new EventHandler((object sender2, EventArgs e2) =>
+            {
+                MessageBox.Show("当前选中的时间是:" + RyDate.UnixTimeToDateTime(TxtPost.SelectedText).ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+            });
+            TxtPost.AddMenu("插入时间戳", "").Click += new EventHandler((object sender2, EventArgs e2) =>
+            {
+                SuperDesign.Controls.FrmInsertUnixTime frm = new SuperDesign.Controls.FrmInsertUnixTime();
+                frm.Icon = Icon;
+                var text = TxtPost.SelectedText;
+                if(text.Length>4 && text.IsInt())
+                {
+                    frm.dateTimePickerEX1.Value = RyDate.UnixTimeToDateTime(text);
+                }
+                if (frm.ShowDialog()==DialogResult.OK)
+                {
+                    TxtPost.SelectedText = RyDate.DateTimeToUnixTime(frm.dateTimePickerEX1.Value).ToString();
+                }
+               // MessageBox.Show("当前选中的时间是:" + RyDate.UnixTimeToDateTime(TxtPost.SelectedText).ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+            });
+            TxtPost.OnMenuOpening += TxtPost_OnMenuOpening;
+        }
+
+        private void TxtPost_OnMenuOpening(object sender, CancelEventArgs e)
+        {
+            var item= TxtPost.GetMenuItem("unixtime");
+            if(item!=null)
+            {
+                var text = TxtPost.SelectedText;
+                item.Visible = text.IsInt() && text.Length>4;
+            }
+        }
+
+        private bool IsExit = false;
+        private bool IsRunning = false;
+        Thread th;
+        private void BtnRunHtml_Click(object sender, EventArgs e)
+        {
+            if (IsRunning) {
+                IsExit = true;
+                BtnRunHtml.Text = "停止中"; ;
+                if (th!=null && th.IsAlive)
+                {
+                    th.Abort();
+                }
+                return;
+            }
+            IsExit = false;
+            IsRunning = true;
+            BtnRunHtml.Text = "停止执行"; ;
+            #region 将当前设置赋值到查询
+            this.RichHtml.Text = "正在获取数据...";
+            Te_Format.Text = "正在获取数据...";
+            this.RichCookie.Text = "";
+            RichHeader.Text = "";
+            RichStatus.Text = "";
+            extendedWebBrowser1.LoadStrings("");
+            if (TxtUrl.Text.IndexOfEx("//") == 0)
+            {
+                TxtUrl.Text = "http:" + TxtUrl.Text;
+            }
+            else if (TxtUrl.Text.IndexOfEx("://") == 0)
+            {
+                TxtUrl.Text = "http" + TxtUrl.Text;
+            }
+            else if (TxtUrl.Text.IndexOfEx("http") != 0)
+            {
+                TxtUrl.Text = "http://" + TxtUrl.Text.TrimStart('/');
+            }
+
+            string str = "get";
+            if (RbGet.Checked)
+            {
+                str = "get";
+            }
+            if (RbPost.Checked)
+            {
+                str = "post";
+            }
+            var PostData = this.TxtPost.Text.Trim();
+            if (CbbContentType.Text== "application/json")
+            {
+                try
+                {
+                    JObject jo = (JObject)JsonConvert.DeserializeObject(PostData);
+                    PostData = Newtonsoft.Json.JsonConvert.SerializeObject(jo, new Newtonsoft.Json.JsonSerializerSettings() { StringEscapeHandling = Newtonsoft.Json.StringEscapeHandling.EscapeNonAscii });
+                }
+                catch (Exception ex)
+                {
+                }
+            }
+            HttpItem item = new HttpItem
+            {
+                URL = TxtUrl.Text.Trim(),
+                Method = str,
+                IsToLower = this.ChkUrlLower.Checked,
+                Cookie = this.TxtCookie.Text.Trim(),
+                Referer = this.CbbReferer.Text.Trim(),
+                Postdata = PostData,
+                Timeout = Convert.ToInt32(this.CbbTimeout.Text.Replace("秒", string.Empty).Trim()) * 0x3e8,
+                ReadWriteTimeout = Convert.ToInt32(this.CbbWriteTimeout.Text.Replace("秒", string.Empty).Trim()) * 0x3e8,
+                UserAgent = this.CbbUserAgent.Text,
+                ContentType = this.CbbContentType.Text,
+                Allowautoredirect = this.ChkJump.Checked,
+                ProtocolVersion = System.Net.HttpVersion.Version11,
+                ResultType = ChkGetPic.Checked ? ResultType.Byte : ResultType.String,
+            };
+            if (TxtInputHeader.Text.Length > 0)
+            {
+                try
+                {
+                    string[] item_header = TxtInputHeader.Text.Replace("\r", "").Split('\n');
+                    for (int i = 0; i < item_header.Length; i++)
+                    {
+                        item.Header.Add(item_header[i]);
+                        //int iPos = item_header[i].LastIndexOf(":");
+                        //if (iPos > 0)
+                        //{
+                        //    var header_name = item_header[i].Substring(0, iPos);
+                        //    var header_value = item_header[i].Substring(iPos + 1);
+                        //    item.Header.Add(header_name, header_value);
+                        //}
+                    }
+                }
+                catch (Exception exception)
+                {
+                    this.RichHtml.Text = exception.Message;
+                    Te_Format.Text = "";
+                    tabControl2.SelectedIndex = 0;
+                    BtnRunHtml.Text = "执行";
+                    IsRunning = false;
+                    return;
+                }
+            }
+            if (CbbUserAgent.SelectedIndex != -1)
+            {
+                if (CbbUserAgent.SelectedItem is UserAgentInfo)
+                {
+                    item.UserAgent = ((UserAgentInfo)CbbUserAgent.SelectedItem).useragent;
+                }
+            }
+            if (!string.IsNullOrEmpty(this.CbbIp.Text.Trim()))
+            {
+                item.ProxyIp = this.CbbIp.Text.Trim();
+            }
+            if (!this.CbbEncoding.Text.Contains("自动"))
+            {
+                item.Encoding = Encoding.GetEncoding(this.CbbEncoding.Text.Trim());
+            }
+            #endregion
+            if (th != null && th.IsAlive)
+            {
+                th.Abort();
+            }
+            th = new Thread(Start);
+            th.Start();
+            void Start()
+            {
+                try
+                {
+                    var http = new HttpHelper();
+                    DateTime dt = DateTime.Now;
+                    var result = http.GetHtml(item);
+                    DateTime dt_end = DateTime.Now;
+                    _ = this.Invoke(new Action(() =>
+                      {
+                          #region 将获得的结果显示出来
+                          if (result.Html.Length > 1024 * 1024 * 4)
+                          {
+                              this.RichHtml.Text = "获取失败,您要获取的网页超过4MB,暂时无法获取。";
+                              Te_Format.Text = "获取失败,您要获取的网页超过4MB,暂时无法获取。";
+                          }
+                          else
+                          {
+                              if (result.StatusCode == System.Net.HttpStatusCode.Redirect)
+                              {
+                                  if (!ChkJump.Checked)
+                                  {
+                                      switch (MessageBox.Show("当前Url需要跳转,是否勾选跳转重试获取?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+                                      {
+                                          case DialogResult.Yes:
+                                              ChkJump.Checked = true;
+                                              IsRunning = false;
+                                              BtnRunHtml_Click(sender, e);
+                                              return;
+                                      }
+                                  }
+                              }
+                              RichHtml.Text = string.Empty;
+                              if (this.ChkGetPic.Checked)
+                              {
+                                  pictureBox1.Image = this.ByteArrayToImage(result.ResultByte);
+                                  RichHtml.Visible = false;
+                                  pictureBox1.Visible = true;
+                                  tabControl2.SelectedIndex = 0;
+                                  AddUrl("", TxtUrl.Text);
+                              }
+                              else
+                              {
+                                  this.RichHtml.Text = result.Html;
+                                  if (Manager.Json.IsJson(result.Html))
+                                  {
+                                      Te_Format.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy("JSON");
+                                      Te_Format.Text = Manager.Json.ConvertJsonString(result.Html);
+                                      AddUrl("", TxtUrl.Text);
+                                  }
+                                  else
+                                  {
+                                      string[] _format_html = result.Html.Replace("\r", "").Split('\n');
+                                      string _html = "";
+                                      for (int i = 0; i < _format_html.Length; i++)
+                                      {
+                                          if (_format_html[i].Trim().Length == 0)
+                                          {
+                                              continue;
+                                          }
+                                          if (_html.Length > 0) { _html += "\r\n"; }
+                                          _html += _format_html[i];
+                                      }
                                       Te_Format.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy("HTML");
                                       try
                                       {
                                           Te_Format.Text = JJCCX.Xml.HtmlFormater.ConvertToXml(_html, true);
-                                      }
-                                      catch
+                                      }
+                                      catch
                                       {
                                           Te_Format.Text = _html;
-                                      }
-                                      if (result.StatusCode == System.Net.HttpStatusCode.Redirect || result.StatusCode == System.Net.HttpStatusCode.OK)
-                                      {
-                                          string title = "";
-                                          try
-                                          {
-                                              HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
-                                              htmlDoc.LoadHtml(result.Html);
-                                              var anchors = htmlDoc.DocumentNode.SelectNodes("//title");
-                                              if (anchors != null && anchors.Count > 0)
-                                              {
-                                                  title = RyWeb.WebDecode.ConvertHtmlInner(anchors[0].InnerText);
-                                              }
-                                          }
-                                          catch { }
-                                          AddUrl(title, TxtUrl.Text);
-                                      }
-                                  }
-                                  this.RichHtml.Visible = true;
-                                  this.pictureBox1.Visible = false;
-                              }
-                          }
-                          this.RichCookie.Text = result.Cookie;
-                          var timespan = (dt_end - dt).TotalMilliseconds.ToInt();
-                          string timespan_str = "";
-                          if (timespan < 1000) { timespan_str = timespan + "毫秒"; }
-                          else { timespan_str = timespan / 1000 + "秒" + timespan % 1000 + "毫秒"; }
-                          this.RichStatus.Text = "StatusCode:" + result.StatusCode.ToString() + "\r\nStatusDescription:" + result.StatusDescription + "\r\n耗时:" + timespan_str;
-                          this.RichHeader.Text = "";
+                                      }
+                                      if (result.StatusCode == System.Net.HttpStatusCode.Redirect || result.StatusCode == System.Net.HttpStatusCode.OK)
+                                      {
+                                          string title = "";
+                                          try
+                                          {
+                                              HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
+                                              htmlDoc.LoadHtml(result.Html);
+                                              var anchors = htmlDoc.DocumentNode.SelectNodes("//title");
+                                              if (anchors != null && anchors.Count > 0)
+                                              {
+                                                  title = RyWeb.WebDecode.ConvertHtmlInner(anchors[0].InnerText);
+                                              }
+                                          }
+                                          catch { }
+                                          AddUrl(title, TxtUrl.Text);
+                                      }
+                                  }
+                                  this.RichHtml.Visible = true;
+                                  this.pictureBox1.Visible = false;
+                              }
+                          }
+                          this.RichCookie.Text = result.Cookie;
+                          var timespan = (dt_end - dt).TotalMilliseconds.ToInt();
+                          string timespan_str = "";
+                          if (timespan < 1000) { timespan_str = timespan + "毫秒"; }
+                          else { timespan_str = timespan / 1000 + "秒" + timespan % 1000 + "毫秒"; }
+                          this.RichStatus.Text = "StatusCode:" + result.StatusCode.ToString() + "\r\nStatusDescription:" + result.StatusDescription + "\r\n耗时:" + timespan_str;
+                          this.RichHeader.Text = "";
                           if (result.Header != null)
                           {
                               foreach (string str1 in result.Header.AllKeys)
                               {
                                   string text = this.RichHeader.Text;
                                   this.RichHeader.Text = text + str1 + ":" + result.Header[str1].ToString() + "\r\n";
-                              }
-                          }
-                          if (!ChkNoPreview.Checked)
-                          {
-                              if (ChkHtmlPreview.Checked)
-                              {
-                                  if (!this.CbbEncoding.Text.Contains("自动"))
-                                  {
-                                      extendedWebBrowser1.LoadStrings(RichHtml.Text.Trim(), Encoding.GetEncoding(this.CbbEncoding.Text.Trim()));
-                                  }
-                                  else { extendedWebBrowser1.LoadStrings(RichHtml.Text.Trim(), Encoding.UTF8); }
-                                  //MessageBox.Show(extendedWebBrowser1.Document.Encoding);
-                                  //extendedWebBrowser1.Document.Encoding = Encoding.UTF8.BodyName;
-                              }
-                              else
-                              {
-                                  if (RbGet.Checked)
-                                  {
-                                      extendedWebBrowser1.Navigate(TxtUrl.Text, null, null, TxtInputHeader.Text);
-                                  }
-                                  else
-                                  {
-                                      string strData = TxtPost.Text;
-                                      string strHeaders = "Content-Type: " + CbbContentType.Text + "\r\n" + TxtInputHeader.Text;
-                                      ASCIIEncoding AE = new ASCIIEncoding();
-                                      byte[] bytePost = AE.GetBytes(strData);
-                                      //byte[] byteHeaders = AE.GetBytes(strHeaders);
-                                      extendedWebBrowser1.Navigate(TxtUrl.Text, null, bytePost, strHeaders);
-                                  }
-                              }
-                          }
-                          #endregion
-                      }));
-                }
-                catch (Exception exception)
-                {
-                    this.Invoke(new Action(() =>
-                    {
-                        if (IsExit)
-                        { 
-                            this.RichHtml.Text = "用户中断执行";
-                            BtnRunHtml.Text = "执行";
-                            IsRunning = false;
-                        }
-                        else
-                        {
-                            this.RichHtml.Text = exception.Message;
-                        }
-                        Te_Format.Text = "";
-                    }));
-                }
-                this.Invoke(new Action(() =>
-                {
-                    BtnRunHtml.Text = "执行";
-                    IsRunning = false;
-                }));
-            }
-
-        }
-
-        private Image ByteArrayToImage(byte[] Bytes)
-        {
-            MemoryStream stream = new MemoryStream(Bytes);
-            return Image.FromStream(stream, true);
-        }
-
-        private void TxtUrl_KeyDown(object sender, KeyEventArgs e)
-        {
-            if (e.KeyCode == Keys.Enter)
-            {
-                BtnRunHtml.PerformClick();
-            }
-            else if (e.KeyCode == Keys.Down)
-            {
-                if (table1.Visible)
-                {
-                    table1.TableModel.Selections.Clear();
-                    table1.TableModel.Selections.AddCells(0, 0, 0, columnModel1.Columns.Count - 1);
-                    table1.Focus();
-                }
-            }
-        }
-
-        private void FrmWebGet_Load(object sender, EventArgs e)
-        {
-            contextMenuStripHighlightText1.AddSeparatorMenu();
-            contextMenuStripHighlightText1.AddMenu("将选中的内容作为Json分析", "").Click += AnalyJson_Click;
-            for (int i = 0; i < this.Controls.Count; i++)
-            {
-                switch (this.Controls[i])
-                {
-                    case GroupBox gb:
-                        gb.Click += Gb_Click;
-                        break;
-                }
-            }
-        }
-
-        private void Gb_Click(object sender, EventArgs e)
-        {
-            table1.Visible = false;
-            //RbGet.Focus();
-            switch ((this.DockPanel.FindForm()))
-            {
-                case Form1 frm:
-                    frm.HideDownList();
-                    break;
-            }
-        }
-
-        private void AnalyJson_Click(object sender, EventArgs e)
-        {
-            ContextMenuStrip menu =(ContextMenuStrip) (((ToolStripMenuItem)sender).Owner);
-            switch(menu.SourceControl)
-            {
-                case ICSharpCode.TextEditor.TextEditorControl rich_txt:
-                    var SelectedText= rich_txt.ActiveTextAreaControl.SelectionManager.SelectedText;
-                    if (SelectedText == "") { SelectedText = rich_txt.Text; }
-                    //if (Manager.Json.IsJson(SelectedText))
-                    {
-                        FrmJson frm = new FrmJson();
-                        frm.Show(this.DockPanel);
-                        frm.LoadJson(SelectedText);
-                    }
-                    break;
-                case RichTextBox rich_txt2:
-                    var SelectedText2 = rich_txt2.SelectedText;
-                    if (SelectedText2 == "") { SelectedText2 = rich_txt2.Text; }
-                    //if (Manager.Json.IsJson(SelectedText2))
-                    {
-                        FrmJson frm = new FrmJson();
-                        frm.Show(this.DockPanel);
-                        frm.LoadJson(SelectedText2);
-                    }
-                    break;
-            }
-        }
-
-        private void BtnCtreateCShape_Click(object sender, EventArgs e)
-        {
-            string str = "get";
-            if (RbGet.Checked)
-            {
-                str = "get";
-            }
-            if (RbPost.Checked)
-            {
-                str = "post";
-            }
-            HttpItem item = new HttpItem
-            {
-                URL = TxtUrl.Text.Trim(),
-                Method = str,
-                IsToLower = this.ChkUrlLower.Checked,
-                Cookie = this.TxtCookie.Text.Trim(),
-                Referer = this.CbbReferer.Text.Trim(),
-                Postdata = this.TxtPost.Text.Trim(),
-                Timeout = Convert.ToInt32(this.CbbTimeout.Text.Replace("秒", string.Empty).Trim()) * 0x3e8,
-                ReadWriteTimeout = Convert.ToInt32(this.CbbWriteTimeout.Text.Replace("秒", string.Empty).Trim()) * 0x3e8,
-                UserAgent = this.CbbUserAgent.Text,
-                ContentType = this.CbbContentType.Text,
-                Allowautoredirect = this.ChkJump.Checked,
-                ResultType = ChkGetPic.Checked ? ResultType.Byte : ResultType.String
-            };
-            if (CbbUserAgent.SelectedIndex != -1)
-            {
-                if (CbbUserAgent.SelectedItem is UserAgentInfo)
-                {
-                    item.UserAgent = ((UserAgentInfo)CbbUserAgent.SelectedItem).useragent;
-                }
-            }
-            if (!string.IsNullOrEmpty(this.CbbIp.Text.Trim()))
-            {
-                item.ProxyIp = this.CbbIp.Text.Trim();
-            }
-            if (!this.CbbEncoding.Text.Contains("自动"))
-            {
-                item.Encoding = Encoding.GetEncoding(this.CbbEncoding.Text.Trim());
-            }
-            this.RichHtml.Visible = true;
-            this.pictureBox1.Visible = false;
-            //this.SetHttpItem();
-            StringBuilder builder = new StringBuilder();
-            builder.Append("            HttpHelper http = new HttpHelper();\r\n");
-            builder.Append("            HttpItem item = new HttpItem()\r\n");
-            builder.Append("            {\r\n");
-            builder.Append("                URL = \"" + item.URL + "\",//URL     必需项    \r\n");
-            if (!this.CbbEncoding.Text.Trim().Contains("自动"))
-            {
-                builder.Append("                Encoding = System.Text.Encoding.GetEncoding( \"" + this.CbbEncoding.Text.Trim() + "\"),//URL     可选项 默认为Get   \r\n");
-            }
-            builder.Append("                Method = \"" + item.Method + "\",//URL     可选项 默认为Get   \r\n");
-            builder.Append("                IsToLower = " + item.IsToLower.ToString().ToLower() + ",//得到的HTML代码是否转成小写     可选项默认转小写   \r\n");
-            builder.Append("                Cookie = \"" + item.Cookie + "\",//字符串Cookie     可选项   \r\n");
-            builder.Append("                Referer =\"" + item.Referer + "\",//来源URL     可选项   \r\n");
-            builder.Append("                Postdata = \"" + item.Postdata + "\",//Post数据     可选项GET时不需要写   \r\n");
-            builder.Append("                Timeout = " + item.Timeout + ",//连接超时时间     可选项默认为100000    \r\n");
-            builder.Append("                ReadWriteTimeout = " + item.ReadWriteTimeout + ",//写入Post数据超时时间     可选项默认为30000   \r\n");
-            builder.Append("                UserAgent = \"" + item.UserAgent + "\",//用户的浏览器类型,版本,操作系统     可选项有默认值   \r\n");
-            builder.Append("                ContentType = \"" + item.ContentType + "\",//返回类型    可选项有默认值   \r\n");
-            builder.Append("                Allowautoredirect = " + item.Allowautoredirect.ToString().ToLower() + ",//是否根据301跳转     可选项   \r\n");
-            builder.Append("                //CerPath = \"d:\\123.cer\",//证书绝对路径     可选项不需要证书时可以不写这个参数   \r\n");
-            builder.Append("                //Connectionlimit = 1024,//最大连接数     可选项 默认为1024    \r\n");
-            builder.Append("                ProxyIp = \"" + item.ProxyIp + "\",//代理服务器ID     可选项 不需要代理 时可以不设置这三个参数    \r\n");
-            builder.Append("                //ProxyPwd = \"123456\",//代理服务器密码     可选项    \r\n");
-            builder.Append("                //ProxyUserName = \"administrator\",//代理服务器账户名     可选项   \r\n");
-            builder.Append("                ResultType = " + (ChkGetPic.Checked ? "ResultType.Byte" : "ResultType.String") + "\r\n");
-            builder.Append("            };\r\n");
-            builder.Append("");
-            builder.Append("            HttpResult result = http.GetHtml(item);\r\n");
-            builder.Append("            string html = result.Html;\r\n");
-            builder.Append("            string cookie = result.Cookie;\r\n");
-            builder.Append("        \r\n\r\n");
-            builder.Append("        /// <summary>\r\n");
-            builder.Append("        /// 字节数组生成图片\r\n");
-            builder.Append("        /// </summary>\r\n");
-            builder.Append("        /// <param name=\"Bytes\">字节数组</param>\r\n");
-            builder.Append("        /// <returns>图片</returns>\r\n");
-            builder.Append("        private Image byteArrayToImage(byte[] Bytes)\r\n");
-            builder.Append("        {\r\n");
-            builder.Append("            MemoryStream ms = new MemoryStream(Bytes);\r\n");
-            builder.Append("            return Bitmap.FromStream(ms,true);\r\n");
-            builder.Append("        }\r\n");
-            RichHtml.Text = builder.ToString();
-            Te_Format.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy("C#");
-            Te_Format.Text= builder.ToString();
-
-        }
-        public void AddUrl(string title,string url)
-        {
-            DataProvider mydb = new DataProvider();
-            IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
-            if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
-            {
-                var _title = title;
-                if(_title == "")
-                {
-                    var mode = url.Replace("?","&").GetStr("&a=","");
-                    if (mode.IndexOf("&") > 0) { mode = mode.GetStr("", "&"); }
-                    if(mode.Length==0)
-                    {
-                        mode = url.Replace("?", "&").GetStr("&Action=", "");
-                        if (mode.IndexOf("&") > 0) { mode = mode.GetStr("", "&"); }
-                    }
-                    _title = mode;
-                }
-                RyQuickSQL mySQL = new RyQuickSQL("Urls");
-                mySQL.AddField("Name", _title);
-                mySQL.AddField("Url", url);
-                mySQL.AddField("Cookie", TxtCookie.Text);
-                mySQL.AddField("Postdata", TxtPost.Text);
-                mySQL.AddField("Header", TxtInputHeader.Text);
-                mySQL.AddField("Method", RbGet.Checked?"get":"post");
-                mySQL.AddField("Referer", CbbReferer.Text);
-                mySQL.AddField("ContentType", CbbContentType.Text);
-                mySQL.AddField("Encoding", CbbEncoding.Text);
-                DataSet ds = db.ReadData("select * from Urls where Url=@Url", mySQL);
-                if (mydb.HaveData(ds))
-                {
-                    DataRow reader = ds.Tables[0].Rows[0];
-                    #region 读取信息  
-                    mySQL.AddFieldCalc("ClickCount", "ClickCount+1");//点击次数
-                    mySQL.AddField("editTime", DateTime.Now);
-                    db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + reader["id"].ToString(), mySQL);
-                    #endregion
-                }
-                else
-                {
-                    mySQL.AddField("ClickCount",1);
-                    mySQL.AddField("editTime", DateTime.Now);
-                    mySQL.AddField("addTime", DateTime.Now);
-                    db.ExecuteNonQuery(mySQL.GetInsertSQL(),mySQL);
-                }
-            }
-            db.Free();
-        }
-        bool proc_use = false;
-        private void ClickItem(bool run = false)
-        {
-            if (table1.SelectedItems.Length > 0)
-            {
-                table1.Visible = false;
-                Application.DoEvents();
-                proc_use = true;
-                string url = table1.SelectedItems[0].Cells[ColUrl.Index].Text;
-                DataProvider mydb = new DataProvider();
-                IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
-                if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
-                {
-                    db.AddParameter("url", url);
-                    DataSet ds = db.ReadData("select * from Urls where Url=@url", db.GetParameter());
-                    if(mydb.HaveData(ds))
-                    {
-                        DataRow row = ds.Tables[0].Rows[0];
-                        SetValueByRich(TxtCookie,"Cookie");
-                        SetValueByRich(TxtPost, "Postdata");
-                        SetValueByRich(TxtInputHeader, "Header");
-                        SetValue2(CbbReferer, "Referer");
-                        SetValue2(CbbContentType, "ContentType");
-                        SetValue2(CbbEncoding, "Encoding");
-                        if (row["Method"].ToString().Length>0)
-                        {
-                            if(row["Method"].ToString()=="post")
-                            {
-                                RbPost.Checked = true;
-                            }
-                            else { RbGet.Checked = true; }
-                        }
-                        void SetValueByRich(ryControls.Controls.RichTextBox2 txt, string Field)
-                        {
-                            if (row[Field].ToString().Length > 0) { txt.Text = row[Field].ToString(); }
-                        }
-                        void SetValue2(ryControls.RyComboBox cbb, string Field)
-                        {
-                            if (row[Field].ToString().Length>0) { cbb.Text = row[Field].ToString(); }
-                        }
-                    }
-                    db.Free();
-                }
-                TxtUrl.Text = url;
-                if (run)
-                { BtnRunHtml.PerformClick(); }
-                proc_use = false;
-            }
-            else { table1.Visible = false; }
-        }
-        private void Table1_KeyDown(object sender, KeyEventArgs e)
-        {
-            if (e.KeyCode == Keys.Up)
-            {
-                if (table1.SelectedItems.Length > 0 && table1.SelectedItems[0].Index == 0)
-                {
-                    table1.TableModel.Selections.Clear();
-                    TxtUrl.Select();
-                    //rySearch1.Select();
-                }
-            }
-            else if (e.KeyCode == Keys.Enter)
-            {
-                ClickItem();
-            }
-        }
-
-        private void TxtUrl_TextChanged2(object sender, EventArgs e)
-        {
-            if (proc_use) { return; }
-            string sql_where = "";
-            if (TxtUrl.Text != "") { sql_where = " where (Name like @SearchText or Url like @SearchText)"; }
-            #region 重新载入数据
-            tableModel1.Rows.Clear();
-            tableModel1.Selections.Clear();
-            DataProvider mydb = new DataProvider();
-            IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
-            if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
-            {
-                db.AddParameter("SearchText", "%" + TxtUrl.Text + "%");
-                DataSet ds = db.ReadData("select * from Urls" + sql_where+ " order by ClickCount desc,editTime desc", db.GetParameter());
-                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
-                {
-                    DataRow row = ds.Tables[0].Rows[i];
-                    DateTime editTime = row["editTime"].ToDateTime();
-                    XPTable.Models.Row itemList = new XPTable.Models.Row()
-                    {
-                        Tag = row["id"].ToString()
-                    };
-                    //需要修改此处
-                    itemList.Cells.Add(new XPTable.Models.Cell(row["Url"].ToString()));//示例
-                    itemList.Cells.Add(new XPTable.Models.Cell(row["Name"].ToString()));
-                    if (editTime >= DateTime.Now.AddMinutes(-10))
-                    {
-                        tableModel1.Rows.Insert(0,itemList);
-                    }
-                    else
-                    {
-                        tableModel1.Rows.Add(itemList);
-                    }
-                }
-                db.Free();
-                table1.Visible = tableModel1.Rows.Count != 0;
-                table1.BringToFront();
-            }
-            #endregion
-        }
-
-        private void FrmWebGet_Click(object sender, EventArgs e)
-        {
-            table1.Visible = false;
-        }
-
-        private void Table1_CellLostFocus(object sender, XPTable.Events.CellFocusEventArgs e)
-        {
-            if (e.Row == -1) { table1.Visible = false; }
-        }
-
-        private void Table1_Leave(object sender, EventArgs e)
-        {
-            if(!TxtUrl.Focused)
-            {
-                table1.Visible = false;
-            }
-        }
-
-        private void TxtUrl_Leave(object sender, EventArgs e)
-        {
-            if (!table1.Focused)
-            {
-                table1.Visible = false;
-            }
-        }
-        
-
-        private void timer1_Tick(object sender, EventArgs e)
-        {
-        }
-
-        private void table1_MouseClick(object sender, MouseEventArgs e)
-        {
-            if (e.Button == MouseButtons.Left)
-            {
-                ClickItem();
-            }
-        }
-
-        private void TxtPost_DoubleClick(object sender, EventArgs e)
-        {
-            ryControls.Controls.RichTextBox2 txt = (ryControls.Controls.RichTextBox2)sender;
-            开发辅助工具.Controls.FrmText frm = new Controls.FrmText
-            {
-                Icon = Icon
-            };
-            frm.richTextBox1.Text = txt.Text;
-            if (frm.ShowDialog() == DialogResult.OK)
-            {
-                txt.Text = frm.richTextBox1.Text;
-            }
-        }
-
-        private void TxtPost_TextChanged(object sender, EventArgs e)
-        {
-            if (TxtPost.Text != "") { tabPage1.Text = "Post数据(有数据)"; }
-            else { tabPage1.Text = "Post数据"; }
-        }
-
-        private void TxtCookie_TextChanged(object sender, EventArgs e)
-        {
-            if (TxtCookie.Text != "") { tabPage2.Text = "Cookie(有数据)"; }
-            else { tabPage2.Text = "Cookie"; }
-        }
-
-        private void TxtInputHeader_TextChanged(object sender, EventArgs e)
-        {
-            if (TxtInputHeader.Text != "") { tabPage7.Text = "Header(有数据)"; }
-            else { tabPage7.Text = "Header"; }
-        }
-
-        private void ChkNoPreview_CheckedChanged(object sender, EventArgs e)
-        {
-            ChkHtmlPreview.Enabled = !ChkNoPreview.Checked;
+                              }
+                          }
+                          if (!ChkNoPreview.Checked)
+                          {
+                              if (ChkHtmlPreview.Checked)
+                              {
+                                  if (!this.CbbEncoding.Text.Contains("自动"))
+                                  {
+                                      extendedWebBrowser1.LoadStrings(RichHtml.Text.Trim(), Encoding.GetEncoding(this.CbbEncoding.Text.Trim()));
+                                  }
+                                  else { extendedWebBrowser1.LoadStrings(RichHtml.Text.Trim(), Encoding.UTF8); }
+                                  //MessageBox.Show(extendedWebBrowser1.Document.Encoding);
+                                  //extendedWebBrowser1.Document.Encoding = Encoding.UTF8.BodyName;
+                              }
+                              else
+                              {
+                                  if (RbGet.Checked)
+                                  {
+                                      extendedWebBrowser1.Navigate(TxtUrl.Text, null, null, TxtInputHeader.Text);
+                                  }
+                                  else
+                                  {
+                                      string strData = TxtPost.Text;
+                                      string strHeaders = "Content-Type: " + CbbContentType.Text + "\r\n" + TxtInputHeader.Text;
+                                      ASCIIEncoding AE = new ASCIIEncoding();
+                                      byte[] bytePost = AE.GetBytes(strData);
+                                      //byte[] byteHeaders = AE.GetBytes(strHeaders);
+                                      extendedWebBrowser1.Navigate(TxtUrl.Text, null, bytePost, strHeaders);
+                                  }
+                              }
+                          }
+                          #endregion
+                      }));
+                }
+                catch (Exception exception)
+                {
+                    this.Invoke(new Action(() =>
+                    {
+                        if (IsExit)
+                        { 
+                            this.RichHtml.Text = "用户中断执行";
+                            BtnRunHtml.Text = "执行";
+                            IsRunning = false;
+                        }
+                        else
+                        {
+                            this.RichHtml.Text = exception.Message;
+                        }
+                        Te_Format.Text = "";
+                    }));
+                }
+                this.Invoke(new Action(() =>
+                {
+                    BtnRunHtml.Text = "执行";
+                    IsRunning = false;
+                }));
+            }
+
+        }
+
+        private Image ByteArrayToImage(byte[] Bytes)
+        {
+            MemoryStream stream = new MemoryStream(Bytes);
+            return Image.FromStream(stream, true);
+        }
+
+        private void TxtUrl_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (e.KeyCode == Keys.Enter)
+            {
+                BtnRunHtml.PerformClick();
+            }
+            else if (e.KeyCode == Keys.Down)
+            {
+                if (table1.Visible)
+                {
+                    table1.TableModel.Selections.Clear();
+                    table1.TableModel.Selections.AddCells(0, 0, 0, columnModel1.Columns.Count - 1);
+                    table1.Focus();
+                }
+            }
+        }
+
+        private void FrmWebGet_Load(object sender, EventArgs e)
+        {
+            contextMenuStripHighlightText1.AddSeparatorMenu();
+            contextMenuStripHighlightText1.AddMenu("将选中的内容作为Json分析", "").Click += AnalyJson_Click;
+            for (int i = 0; i < this.Controls.Count; i++)
+            {
+                switch (this.Controls[i])
+                {
+                    case GroupBox gb:
+                        gb.Click += Gb_Click;
+                        break;
+                }
+            }
+        }
+
+        private void Gb_Click(object sender, EventArgs e)
+        {
+            table1.Visible = false;
+            //RbGet.Focus();
+            switch ((this.DockPanel.FindForm()))
+            {
+                case Form1 frm:
+                    frm.HideDownList();
+                    break;
+            }
+        }
+
+        private void AnalyJson_Click(object sender, EventArgs e)
+        {
+            ContextMenuStrip menu =(ContextMenuStrip) (((ToolStripMenuItem)sender).Owner);
+            switch(menu.SourceControl)
+            {
+                case ICSharpCode.TextEditor.TextEditorControl rich_txt:
+                    var SelectedText= rich_txt.ActiveTextAreaControl.SelectionManager.SelectedText;
+                    if (SelectedText == "") { SelectedText = rich_txt.Text; }
+                    //if (Manager.Json.IsJson(SelectedText))
+                    {
+                        FrmJson frm = new FrmJson();
+                        frm.Show(this.DockPanel);
+                        frm.LoadJson(SelectedText);
+                    }
+                    break;
+                case RichTextBox rich_txt2:
+                    var SelectedText2 = rich_txt2.SelectedText;
+                    if (SelectedText2 == "") { SelectedText2 = rich_txt2.Text; }
+                    //if (Manager.Json.IsJson(SelectedText2))
+                    {
+                        FrmJson frm = new FrmJson();
+                        frm.Show(this.DockPanel);
+                        frm.LoadJson(SelectedText2);
+                    }
+                    break;
+            }
+        }
+
+        private void BtnCtreateCShape_Click(object sender, EventArgs e)
+        {
+            string str = "get";
+            if (RbGet.Checked)
+            {
+                str = "get";
+            }
+            if (RbPost.Checked)
+            {
+                str = "post";
+            }
+            HttpItem item = new HttpItem
+            {
+                URL = TxtUrl.Text.Trim(),
+                Method = str,
+                IsToLower = this.ChkUrlLower.Checked,
+                Cookie = this.TxtCookie.Text.Trim(),
+                Referer = this.CbbReferer.Text.Trim(),
+                Postdata = this.TxtPost.Text.Trim(),
+                Timeout = Convert.ToInt32(this.CbbTimeout.Text.Replace("秒", string.Empty).Trim()) * 0x3e8,
+                ReadWriteTimeout = Convert.ToInt32(this.CbbWriteTimeout.Text.Replace("秒", string.Empty).Trim()) * 0x3e8,
+                UserAgent = this.CbbUserAgent.Text,
+                ContentType = this.CbbContentType.Text,
+                Allowautoredirect = this.ChkJump.Checked,
+                ResultType = ChkGetPic.Checked ? ResultType.Byte : ResultType.String
+            };
+            if (CbbUserAgent.SelectedIndex != -1)
+            {
+                if (CbbUserAgent.SelectedItem is UserAgentInfo)
+                {
+                    item.UserAgent = ((UserAgentInfo)CbbUserAgent.SelectedItem).useragent;
+                }
+            }
+            if (!string.IsNullOrEmpty(this.CbbIp.Text.Trim()))
+            {
+                item.ProxyIp = this.CbbIp.Text.Trim();
+            }
+            if (!this.CbbEncoding.Text.Contains("自动"))
+            {
+                item.Encoding = Encoding.GetEncoding(this.CbbEncoding.Text.Trim());
+            }
+            this.RichHtml.Visible = true;
+            this.pictureBox1.Visible = false;
+            //this.SetHttpItem();
+            StringBuilder builder = new StringBuilder();
+            builder.Append("            HttpHelper http = new HttpHelper();\r\n");
+            builder.Append("            HttpItem item = new HttpItem()\r\n");
+            builder.Append("            {\r\n");
+            builder.Append("                URL = \"" + item.URL + "\",//URL     必需项    \r\n");
+            if (!this.CbbEncoding.Text.Trim().Contains("自动"))
+            {
+                builder.Append("                Encoding = System.Text.Encoding.GetEncoding( \"" + this.CbbEncoding.Text.Trim() + "\"),//URL     可选项 默认为Get   \r\n");
+            }
+            builder.Append("                Method = \"" + item.Method + "\",//URL     可选项 默认为Get   \r\n");
+            builder.Append("                IsToLower = " + item.IsToLower.ToString().ToLower() + ",//得到的HTML代码是否转成小写     可选项默认转小写   \r\n");
+            builder.Append("                Cookie = \"" + item.Cookie + "\",//字符串Cookie     可选项   \r\n");
+            builder.Append("                Referer =\"" + item.Referer + "\",//来源URL     可选项   \r\n");
+            builder.Append("                Postdata = \"" + item.Postdata + "\",//Post数据     可选项GET时不需要写   \r\n");
+            builder.Append("                Timeout = " + item.Timeout + ",//连接超时时间     可选项默认为100000    \r\n");
+            builder.Append("                ReadWriteTimeout = " + item.ReadWriteTimeout + ",//写入Post数据超时时间     可选项默认为30000   \r\n");
+            builder.Append("                UserAgent = \"" + item.UserAgent + "\",//用户的浏览器类型,版本,操作系统     可选项有默认值   \r\n");
+            builder.Append("                ContentType = \"" + item.ContentType + "\",//返回类型    可选项有默认值   \r\n");
+            builder.Append("                Allowautoredirect = " + item.Allowautoredirect.ToString().ToLower() + ",//是否根据301跳转     可选项   \r\n");
+            builder.Append("                //CerPath = \"d:\\123.cer\",//证书绝对路径     可选项不需要证书时可以不写这个参数   \r\n");
+            builder.Append("                //Connectionlimit = 1024,//最大连接数     可选项 默认为1024    \r\n");
+            builder.Append("                ProxyIp = \"" + item.ProxyIp + "\",//代理服务器ID     可选项 不需要代理 时可以不设置这三个参数    \r\n");
+            builder.Append("                //ProxyPwd = \"123456\",//代理服务器密码     可选项    \r\n");
+            builder.Append("                //ProxyUserName = \"administrator\",//代理服务器账户名     可选项   \r\n");
+            builder.Append("                ResultType = " + (ChkGetPic.Checked ? "ResultType.Byte" : "ResultType.String") + "\r\n");
+            builder.Append("            };\r\n");
+            builder.Append("");
+            builder.Append("            HttpResult result = http.GetHtml(item);\r\n");
+            builder.Append("            string html = result.Html;\r\n");
+            builder.Append("            string cookie = result.Cookie;\r\n");
+            builder.Append("        \r\n\r\n");
+            builder.Append("        /// <summary>\r\n");
+            builder.Append("        /// 字节数组生成图片\r\n");
+            builder.Append("        /// </summary>\r\n");
+            builder.Append("        /// <param name=\"Bytes\">字节数组</param>\r\n");
+            builder.Append("        /// <returns>图片</returns>\r\n");
+            builder.Append("        private Image byteArrayToImage(byte[] Bytes)\r\n");
+            builder.Append("        {\r\n");
+            builder.Append("            MemoryStream ms = new MemoryStream(Bytes);\r\n");
+            builder.Append("            return Bitmap.FromStream(ms,true);\r\n");
+            builder.Append("        }\r\n");
+            RichHtml.Text = builder.ToString();
+            Te_Format.Document.HighlightingStrategy = HighlightingStrategyFactory.CreateHighlightingStrategy("C#");
+            Te_Format.Text= builder.ToString();
+
+        }
+        public void AddUrl(string title,string url)
+        {
+            DataProvider mydb = new DataProvider();
+            IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+            if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
+            {
+                var _title = title;
+                if(_title == "")
+                {
+                    var mode = url.Replace("?","&").GetStr("&a=","");
+                    if (mode.IndexOf("&") > 0) { mode = mode.GetStr("", "&"); }
+                    if(mode.Length==0)
+                    {
+                        mode = url.Replace("?", "&").GetStr("&Action=", "");
+                        if (mode.IndexOf("&") > 0) { mode = mode.GetStr("", "&"); }
+                    }
+                    _title = mode;
+                }
+                RyQuickSQL mySQL = new RyQuickSQL("Urls");
+                mySQL.AddField("Name", _title);
+                mySQL.AddField("Url", url);
+                mySQL.AddField("Cookie", TxtCookie.Text);
+                mySQL.AddField("Postdata", TxtPost.Text);
+                mySQL.AddField("Header", TxtInputHeader.Text);
+                mySQL.AddField("Method", RbGet.Checked?"get":"post");
+                mySQL.AddField("Referer", CbbReferer.Text);
+                mySQL.AddField("ContentType", CbbContentType.Text);
+                mySQL.AddField("Encoding", CbbEncoding.Text);
+                DataSet ds = db.ReadData("select * from Urls where Url=@Url", mySQL);
+                if (mydb.HaveData(ds))
+                {
+                    DataRow reader = ds.Tables[0].Rows[0];
+                    #region 读取信息  
+                    mySQL.AddFieldCalc("ClickCount", "ClickCount+1");//点击次数
+                    mySQL.AddField("editTime", DateTime.Now);
+                    db.ExecuteNonQuery(mySQL.GetUpdateSQL() + " where id=" + reader["id"].ToString(), mySQL);
+                    #endregion
+                }
+                else
+                {
+                    mySQL.AddField("ClickCount",1);
+                    mySQL.AddField("editTime", DateTime.Now);
+                    mySQL.AddField("addTime", DateTime.Now);
+                    db.ExecuteNonQuery(mySQL.GetInsertSQL(),mySQL);
+                }
+            }
+            db.Free();
+        }
+        bool proc_use = false;
+        private void ClickItem(bool run = false)
+        {
+            if (table1.SelectedItems.Length > 0)
+            {
+                table1.Visible = false;
+                Application.DoEvents();
+                proc_use = true;
+                string url = table1.SelectedItems[0].Cells[ColUrl.Index].Text;
+                DataProvider mydb = new DataProvider();
+                IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+                if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
+                {
+                    db.AddParameter("url", url);
+                    DataSet ds = db.ReadData("select * from Urls where Url=@url", db.GetParameter());
+                    if(mydb.HaveData(ds))
+                    {
+                        DataRow row = ds.Tables[0].Rows[0];
+                        SetValueByRich(TxtCookie,"Cookie");
+                        SetValueByRich(TxtPost, "Postdata");
+                        SetValueByRich(TxtInputHeader, "Header");
+                        SetValue2(CbbReferer, "Referer");
+                        SetValue2(CbbContentType, "ContentType");
+                        SetValue2(CbbEncoding, "Encoding");
+                        if (row["Method"].ToString().Length>0)
+                        {
+                            if(row["Method"].ToString()=="post")
+                            {
+                                RbPost.Checked = true;
+                            }
+                            else { RbGet.Checked = true; }
+                        }
+                        void SetValueByRich(ryControls.Controls.RichTextBox2 txt, string Field)
+                        {
+                            if (row[Field].ToString().Length > 0) { txt.Text = row[Field].ToString(); }
+                        }
+                        void SetValue2(ryControls.RyComboBox cbb, string Field)
+                        {
+                            if (row[Field].ToString().Length>0) { cbb.Text = row[Field].ToString(); }
+                        }
+                    }
+                    db.Free();
+                }
+                TxtUrl.Text = url;
+                if (run)
+                { BtnRunHtml.PerformClick(); }
+                proc_use = false;
+            }
+            else { table1.Visible = false; }
+        }
+        private void Table1_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (e.KeyCode == Keys.Up)
+            {
+                if (table1.SelectedItems.Length > 0 && table1.SelectedItems[0].Index == 0)
+                {
+                    table1.TableModel.Selections.Clear();
+                    TxtUrl.Select();
+                    //rySearch1.Select();
+                }
+            }
+            else if (e.KeyCode == Keys.Enter)
+            {
+                ClickItem();
+            }
+        }
+
+        private void TxtUrl_TextChanged2(object sender, EventArgs e)
+        {
+            if (proc_use) { return; }
+            string sql_where = "";
+            if (TxtUrl.Text != "") { sql_where = " where (Name like @SearchText or Url like @SearchText)"; }
+            #region 重新载入数据
+            tableModel1.Rows.Clear();
+            tableModel1.Selections.Clear();
+            DataProvider mydb = new DataProvider();
+            IDbInterface db = Itrycn_Db.CreateDataProvider(Itrycn_Db.dataType);
+            if (db.ConnDb(Itrycn_Db.User_SQLConn) == 1)
+            {
+                db.AddParameter("SearchText", "%" + TxtUrl.Text + "%");
+                DataSet ds = db.ReadData("select * from Urls" + sql_where+ " order by ClickCount desc,editTime desc", db.GetParameter());
+                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
+                {
+                    DataRow row = ds.Tables[0].Rows[i];
+                    DateTime editTime = row["editTime"].ToDateTime();
+                    XPTable.Models.Row itemList = new XPTable.Models.Row()
+                    {
+                        Tag = row["id"].ToString()
+                    };
+                    //需要修改此处
+                    itemList.Cells.Add(new XPTable.Models.Cell(row["Url"].ToString()));//示例
+                    itemList.Cells.Add(new XPTable.Models.Cell(row["Name"].ToString()));
+                    if (editTime >= DateTime.Now.AddMinutes(-10))
+                    {
+                        tableModel1.Rows.Insert(0,itemList);
+                    }
+                    else
+                    {
+                        tableModel1.Rows.Add(itemList);
+                    }
+                }
+                db.Free();
+                table1.Visible = tableModel1.Rows.Count != 0;
+                table1.BringToFront();
+            }
+            #endregion
+        }
+
+        private void FrmWebGet_Click(object sender, EventArgs e)
+        {
+            table1.Visible = false;
+        }
+
+        private void Table1_CellLostFocus(object sender, XPTable.Events.CellFocusEventArgs e)
+        {
+            if (e.Row == -1) { table1.Visible = false; }
+        }
+
+        private void Table1_Leave(object sender, EventArgs e)
+        {
+            if(!TxtUrl.Focused)
+            {
+                table1.Visible = false;
+            }
+        }
+
+        private void TxtUrl_Leave(object sender, EventArgs e)
+        {
+            if (!table1.Focused)
+            {
+                table1.Visible = false;
+            }
+        }
+        
+
+        private void timer1_Tick(object sender, EventArgs e)
+        {
+        }
+
+        private void table1_MouseClick(object sender, MouseEventArgs e)
+        {
+            if (e.Button == MouseButtons.Left)
+            {
+                ClickItem();
+            }
+        }
+
+        private void TxtPost_DoubleClick(object sender, EventArgs e)
+        {
+            ryControls.Controls.RichTextBox2 txt = (ryControls.Controls.RichTextBox2)sender;
+            开发辅助工具.Controls.FrmText frm = new Controls.FrmText
+            {
+                Icon = Icon
+            };
+            frm.richTextBox1.Text = txt.Text;
+            if (frm.ShowDialog() == DialogResult.OK)
+            {
+                txt.Text = frm.richTextBox1.Text;
+            }
+        }
+
+        private void TxtPost_TextChanged(object sender, EventArgs e)
+        {
+            if (TxtPost.Text != "") { tabPage1.Text = "Post数据(有数据)"; }
+            else { tabPage1.Text = "Post数据"; }
+        }
+
+        private void TxtCookie_TextChanged(object sender, EventArgs e)
+        {
+            if (TxtCookie.Text != "") { tabPage2.Text = "Cookie(有数据)"; }
+            else { tabPage2.Text = "Cookie"; }
+        }
+
+        private void TxtInputHeader_TextChanged(object sender, EventArgs e)
+        {
+            if (TxtInputHeader.Text != "") { tabPage7.Text = "Header(有数据)"; }
+            else { tabPage7.Text = "Header"; }
+        }
+
+        private void ChkNoPreview_CheckedChanged(object sender, EventArgs e)
+        {
+            ChkHtmlPreview.Enabled = !ChkNoPreview.Checked;
         }
 
         private void Te_Format_TextChanged(object sender, EventArgs e)
         {
             Te_Format.Document.FoldingManager.UpdateFoldings(null, null);
         }
-    }
-    public class UserAgentInfo
-    {
-        public string name = "";
-        public string useragent = "";
-        public override string ToString()
-        {
-            return name;
-        }
-    }
-}
+    }
+    public class UserAgentInfo
+    {
+        public string name = "";
+        public string useragent = "";
+        public override string ToString()
+        {
+            return name;
+        }
+    }
+}