1. using JumpKick.HttpLib;
  2. using Newtonsoft.Json;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Net;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10.  
  11. namespace ConsoleApp2.test1
  12. {
  13. public class Class2
  14. {
  15. //原文:https://archive.codeplex.com/?p=httplib
  16. // https://github.com/j6mes/httplib/
  17.  
  18. //get
  19. public void test1()
  20. {
  21. Http.Get("https://www.cnblogs.com/xuliangxing/p/8004403.html").OnSuccess(result =>
  22. {
  23. Console.Write(result);
  24. }).Go();
  25. }
  26.  
  27. //get
  28. public void test2()
  29. {
  30. Http.Get("https://www.cnblogs.com/xuliangxing/p/8004403.html").OnSuccess(result =>
  31. {
  32. Console.Write(result);
  33. }).OnFail(webexception =>
  34. {
  35. Console.Write(webexception.Message);
  36. }).Go();
  37. }
  38.  
  39. //post raw
  40. public void test3()
  41. {
  42. //方式1
  43. //string strUrlPara = "{ \"uri\": \"rtsp://admin:kj20091228@149.129.67.70:5554/Streaming/Channels/102?transportmode=unicast\"}";
  44.  
  45. //方式2
  46. string strUrlPara = JsonConvert.SerializeObject(new
  47. {
  48. uri = "rtsp://admin:kj20091228@149.129.67.70:5554/Streaming/Channels/102?transportmode=unicast"
  49. });
  50.  
  51. Http.Post("http://149.129.67.70:8080/start").Body(strUrlPara).OnSuccess(result =>
  52. {
  53. Console.Write(result);
  54. }).OnFail(webexception =>
  55. {
  56. Console.Write(webexception.Message);
  57. }).Go();
  58. }
  59.  
  60. //post form
  61. public void test4()
  62. {
  63. Http.Post("http://183.66.231.18:8084/Login/ValidateLogin").Form(new
  64. {
  65. name = "test1",
  66. pwd = "test12",
  67. remember = false
  68. }).OnSuccess(result =>
  69. {
  70. Console.Write(result);
  71. }).OnFail(webexception =>
  72. {
  73. Console.Write(webexception.Message);
  74. }).Go();
  75. }
  76.  
  77. //post cookie
  78. public void test5()
  79. {
  80. IDictionary<string, string> header = new Dictionary<string, string>();
  81. header.Add("Cookie", "ASP.NET_SessionId=jwgaqf0xzbsuc2ojb1dojwzg");
  82.  
  83. Http.Post("http://183.66.231.18:8084/SensorManagement/BindPosition").Form(new
  84. {
  85. bid = ""
  86. }).Headers(header).OnSuccess(result =>
  87. {
  88. Console.Write(result);
  89. }).OnFail(webexception =>
  90. {
  91. Console.Write(webexception.Message);
  92. }).Go();
  93. }
  94.  
  95. //upload file
  96. public void test6()
  97. {
  98. //测试外网 这个地址没有成功,可能是提交file的时候,还一起提交了其它参数
  99. //http://183.66.231.18:8084/Area/BridgeThreeModel/Save
  100. //http://183.66.231.18:8084/Document/Upload
  101.  
  102. IDictionary<string, string> header = new Dictionary<string, string>();
  103. header.Add("Cookie", "ASP.NET_SessionId=jwgaqf0xzbsuc2ojb1dojwzg");
  104.  
  105. //上传文件的时候 附带上传参数 未成功
  106.  
  107. //IDictionary<string, string> form = new Dictionary<string, string>();
  108. //form.Add("ID", "0");
  109. //form.Add("BridgeID", "15");
  110.  
  111. //var obj = new
  112. //{
  113. // ID = 0,
  114. // BridgeID = 15
  115. //};
  116. //string form = JsonConvert.SerializeObject(obj);
  117.  
  118. //var obj = new
  119. //{
  120. // fileName = "44444"
  121. //};
  122. //string form = JsonConvert.SerializeObject(obj);
  123. ////var form = obj;
  124.  
  125. //Stream stream = new MemoryStream();
  126. //byte[] bs = System.Text.Encoding.UTF8.GetBytes(form);
  127. //stream.Write(bs, 0, bs.Length);
  128. //stream.Flush();
  129. //stream.Close();
  130.  
  131. Http.Post("http://localhost:47285/jquery.form/Handler1.ashx?Action=formUpload").Headers(header).Upload(files: new[] {
  132. new NamedFileStream("file", "photo.jpg", "application/octet-stream", File.OpenRead(@"1.png"))
  133. }).OnSuccess(result =>
  134. {
  135. Console.Write(result);
  136. }).OnFail(webexception =>
  137. {
  138. Console.Write(webexception.Message);
  139. }).Go();
  140. }
  141.  
  142. //upload file 显示进度 感觉没有用
  143. public void test7()
  144. {
  145. IDictionary<string, string> header = new Dictionary<string, string>();
  146. header.Add("Cookie", "ASP.NET_SessionId=jwgaqf0xzbsuc2ojb1dojwzg");
  147.  
  148. Http.Post("http://183.66.231.18:8084/Document/Upload").Headers(header).Upload(files: new[] {
  149. new NamedFileStream("file", "1.png", "application/octet-stream", File.OpenRead(@"1.png"))
  150. }, onProgressChanged: (bytesSent, totalBytes) =>
  151. {
  152. var num = ((double)bytesSent / totalBytes.Value) * ;
  153. num = Math.Round(num, );
  154. Console.WriteLine($"Uploading: {num}%");
  155. }).OnSuccess(result =>
  156. {
  157. Console.Write(result);
  158. }).OnFail(webexception =>
  159. {
  160. Console.Write(webexception.Message);
  161. }).Go();
  162. }
  163.  
  164. //down file 显示下载进度
  165. public void test8()
  166. {
  167. Http.Get("http://localhost:47285/jquery.form/梁场数据.zip").DownloadTo(@"1111.zip", onProgressChanged: (bytesCopied, totalBytes) =>
  168. {
  169. if (totalBytes.HasValue)
  170. {
  171. var num = ((double)bytesCopied / totalBytes.Value) * ;
  172. num = Math.Round(num, );
  173. Console.WriteLine($"Downloaded: {num}%");
  174. }
  175. Console.WriteLine("Downloaded: " + bytesCopied.ToString() + " bytes");
  176. }, onSuccess: (headers) =>
  177. {
  178. Console.WriteLine("Download Complete");
  179. }).Go();
  180. }
  181.  
  182. public string HttpPostRaw(string url, string data)
  183. {
  184. string value = "";
  185. HttpWebRequest reqest = (HttpWebRequest)WebRequest.Create(url);
  186. reqest.Method = "POST";
  187. reqest.ContentType = "application/json";
  188.  
  189. Stream stream = reqest.GetRequestStream();
  190. byte[] bs = System.Text.Encoding.UTF8.GetBytes(data);
  191. stream.Write(bs, , bs.Length);
  192. stream.Flush();
  193. stream.Close();
  194.  
  195. HttpWebResponse response = (HttpWebResponse)reqest.GetResponse();
  196. StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
  197. value = sr.ReadToEnd();
  198. response.Close();
  199. return value;
  200. }
  201.  
  202. public void kk2()
  203. {
  204. System.Net.WebClient wc = new System.Net.WebClient();
  205. string strUrlPara = "{ \"uri\": \"rtsp://admin:kj20091228@149.129.67.70:5554/Streaming/Channels/102?transportmode=unicast\"}";
  206. byte[] data = new ASCIIEncoding().GetBytes(strUrlPara);
  207. byte[] responseArray = wc.UploadData("http://149.129.67.70:8080/start", data);
  208. var response = Encoding.UTF8.GetString(responseArray);
  209. Console.WriteLine(response);
  210. }
  211.  
  212. }
  213.  
  214. }

开源项目 02 HttpLib的更多相关文章

  1. .NET平台开源项目速览(16)C#写PDF文件类库PDF File Writer介绍

    1年前,我在文章:这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)中(第9个项目),给大家推荐了一个开源免费的PDF读写组件 PDFSharp,PDFSharp我2年前就看过 ...

  2. 【目录】本博客其他.NET开源项目文章目录

    本博客所有文章分类的总目录链接:本博客博文总目录-实时更新 1.本博客其他.NET开源项目文章目录 37..NET平台开源项目速览(17)FluentConsole让你的控制台酷起来 36..NET平 ...

  3. 收集常用的.net开源项目

    Json.NET http://json.codeplex.com/ Json.NET是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Lin ...

  4. [转] Android优秀开源项目

    Android经典的开源项目其实非常多,但是国内的博客总是拿着N年前的一篇复制来复制去,实在是不利于新手学习.今天爬爬把自己熟悉的一些开源项目整理起来,希望能对Android开发同学们有所帮助.另外, ...

  5. .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB

    今天给大家介绍一个不错的小巧轻量级的NoSQL文件数据库LiteDB.本博客在2013年也介绍过2款.NET平台的开源数据库: 1.[原创]开源.NET下的XML数据库介绍及入门 2.[原创]C#开源 ...

  6. Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)

    下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITableVie ...

  7. 59.Android开源项目及库 (转)

    转载 : https://github.com/Tim9Liu9/TimLiu-Android?hmsr=toutiao.io&utm_medium=toutiao.io&utm_so ...

  8. C# 开源项目一

    商业协作和项目管理平台-TeamLab 网络视频会议软件-VMukti 驰骋工作流程引擎-ccflow [免费]正则表达式测试工具-Regex-Tester Windows-Phone-7-SDK E ...

  9. iOS及Mac开源项目和学习资料【超级全面】

    UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITable ...

随机推荐

  1. ECharts折线图堆叠设置为不堆叠的方法

    下图是ECharts折线图堆叠的官方源码,设置折线图不堆叠只需要将每一个stack的值设置为不一样的名称或者将stack属性删除即可. option = { title: { text: '折线图堆叠 ...

  2. kube-state-metrics 详解

    原文:https://mp.weixin.qq.com/s/176eyFBknzdA5wpiJrxDSg 概述 已经有了 cadvisor.heapster.metric-server,几乎容器运行的 ...

  3. 【转】StackTraceElement获取方法调用栈的信息

    本文链接:https://blog.csdn.net/hp910315/article/details/52702199 一.什么是StackTrace StackTrace(堆栈轨迹)存放的就是方法 ...

  4. windows mysql 5.5.62 安装

    下载链接: https://dev.mysql.com/downloads/installer/ mysql下载这边有句话,虽然是32位的安装包,但是可以装在32位和64位上. 建议迅雷下载. 然后打 ...

  5. day 03作业

    目录 作业 简述执行Python程序的两种方式以及他们的优缺点: 简述Python垃圾回收机制: 对于下述代码: 10的引用计数为多少? x对应的变量值257的引用计数为多少? 简述Python小整数 ...

  6. 构建nodejs环境

    总想留下点东西,不负年华! 00.download releasehttps://nodejs.org/dist/      //all release example https://nodejs. ...

  7. [I2C].I2C总线详解

    转自:https://www.cnblogs.com/BitArt/archive/2013/05/27/3101037.html 一. 基本信息 1. 概述 I²C 是Inter-Integrate ...

  8. 【Flask】 python学习第一章 - 5.0 模板

    jinjia2 模板 python实现 flask 内置语言  参照Djago实现  设置模板文件夹 设置模板语言 jinja2 demo6_template.html  ----> 从代码渲染 ...

  9. pyecharts绘制map地图

    pyecharts的安装和地图库的安装可以参照 geo绘图:https://www.cnblogs.com/qi-yuan-008/p/12025123.html 直接进入 python的具体使用阶段 ...

  10. pycharm新建项目后按钮灰色问题

    同样适用于导入别人的新项目后无法运行问题 原因一: pycharm没有设置系统解析器 解决方法一: 打开pycharm->File->Settings->Project Interp ...