我们目前涉及到的现有的接收请求方式有三种,

第一种:

页面式的Form表单

第二种:

服务的webservice形式的xml

第三个:

restful风格的post包体json

第一种比较老,博客园的登录就是这样的。找了个例子

这里不做具体讨论了。

例子

  1. List<KeyValuePair<string, string>> paramList = new List<KeyValuePair<string, string>>();
  2. HttpClient _client = new HttpClient();
  3.  
  4. async void DownloadPageAsync()
  5. {
  6. // Use static HttpClient to avoid exhausting system resources for network connections.
  7. var result = await _client.PostAsync(new Uri(url), new FormUrlEncodedContent(paramList));
  8. // Write status code.
  9. Console.WriteLine("STATUS CODE: " + result.StatusCode);
  10. result.EnsureSuccessStatusCode();
  11. string resultStr = await result.Content.ReadAsStringAsync();
  12. Console.WriteLine(resultStr);
  13. }
  14. DownloadPageAsync();

第二种的,webservice的,之前的博客里有。

参考

第三种,比较新的json的请求方式

针对这种,就只能用json字符串来提交了,具体代码是

  1. string url = getPRC_Url(serviceName, apiName, null);
  2. string body = "{";
  3. //如果需要POST数据
  4. if (!(parameters == null || parameters.Count == ))
  5. {
  6. StringBuilder buffer = new StringBuilder();
  7. foreach (string key in parameters.Keys)
  8. {
  9. buffer.AppendFormat("\"{0}\":\"{1}\",", key, parameters[key]);
  10. }
  11. body += buffer.ToString() + "}";
  12. }
  13. try
  14. {
  15. HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
  16. httpWebRequest.ContentType = "application/json";
  17. httpWebRequest.Method = "POST";
  18. httpWebRequest.Timeout = ;
  19. byte[] btBodys = Encoding.UTF8.GetBytes(body);
  20. httpWebRequest.ContentLength = btBodys.Length;
  21. httpWebRequest.GetRequestStream().Write(btBodys, , btBodys.Length);
  22. HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
  23. StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream());
  24. string responseContent = streamReader.ReadToEnd();
  25. return responseContent;
  26. }
  27. catch (Exception ex)
  28. {
  29. return null;
  30. }

主要是这个入参需要放在包体里,并且得是"{}"形式的方可。

c# 发送web请求的更多相关文章

  1. WebClient以POST方式发送Web请求

    本例使用WebClient以POST方式发送Web请求并下载一个文件,难点是postData的构造,发送Web请求时有的网站要求可能要求 Cookies前后一致.其中application/x-www ...

  2. C# 使用WebClient时,在多网卡时,指定IP发送Web请求

    需要定义一个类,重写GetWebRequest,在方法内,指定IP地址 public class MyWebClient : WebClient { private IPAddress ipAddre ...

  3. nodejs向远程服务器发送post请求----融云Web SDK/客户端获取token

    最近要用到一个叫融云的及时通讯的SDK,在获取token这个步骤的时候有点卡顿,以防以后碰到类似的问题,再此记录一下. 客户端通过融云 SDK 每次连接服务器时,都需要向服务器提供 Token,以便验 ...

  4. Web Server 使用WebClient 发送https请求 The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel

    使用WebClient 发送https请求 使用WebClient发送请求时,并且是以https协议: WebClient webClient = new WebClient(); string re ...

  5. 高德地图web端笔记;发送http请求的工具类

    1.查询所有电子围栏 package com.skjd.util; import java.io.BufferedReader; import java.io.InputStream; import ...

  6. Postman 发送http请求工具

    http://donglegend.com/2016/10/28/Postman/ Postman 发现一款发送Web API & HTTP 请求的工具,没错,就是Postman.推荐给大家, ...

  7. .net中如何发送HTTP请求网络资源

    应用场景 应该说只要是需要通过发送Http请求获取网络资源的地方都要使用它,网络资源可以是指以URI来表示的资源,比如web api接口等. HttpWebRequest .net2.0 ~ .net ...

  8. 原生js发送ajax请求

    堕落了一阵子了,今天打开博客,发现连登录的用户名和密码都不记得了.2016年已过半,不能再这么晃荡下去了. 参加了网易微专业-前端攻城狮 培训,目前进行到大作业开发阶段,感觉举步维艰.但是无论如何,不 ...

  9. 如何在WinForm中发送HTTP请求

    如何在WinForm中请求发送HTTP 手工发送HTTP请求主要是调用 System.Net的HttpWebResponse方法 手工发送HTTP的GET请 求: string strURL = &q ...

随机推荐

  1. CCPC-Winter Camp div2 day5

    DIV2 有部分div1的题会写 div1的大佬真的太强了 向他们学习 (好像和zqc大佬说过话了hhh,zqc大佬真的是一个超有意思的人啊,羡慕有妹子队友的zqc大佬) A: 你有一棵树,你想把它画 ...

  2. bzoj 2654 tree 二分+kruskal

    tree Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 2739  Solved: 1126[Submit][Status][Discuss] Des ...

  3. HDU3579 线性同余方程(模板 余数不一定互质)

    Hello Kiki Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  4. eclipse中编写代码时如何自动提示变量名?

    打开 Eclipse  -> Window -> Perferences -> Java -> Editor -> Content Assist,在右边最下面一栏找到 a ...

  5. 解决华为手机用rem单位,内容超出屏幕宽度问题

    在H5手机页面上,用rem单位布局,配合js计算出一个根节点的font-size(原理是屏幕宽度乘以一个固定比例,如1/100),之后页面中所有的px全都换算成了rem单位来写,优点是能适配各种不同屏 ...

  6. java mysql 连接

    第一种: //驱动程序名 String driver = "com.mysql.jdbc.Driver"; //URL指向要访问的数据库名mydata String url = & ...

  7. Java并发多线程 - 并发工具类JUC

    安全共享对象策略 1.线程限制 : 一个被线程限制的对象,由线程独占,并且只能被占有它的线程修改 2.共享只读 : 一个共享只读的对象,在没有额外同步的情况下,可以被多个线程并发访问, 但是任何线程都 ...

  8. Codeforces 351B Jeff and Furik 概率 | DP

    B. Jeff and Furik time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  9. Tomcat 7下如何利用 catalina.properties 部署公用类

    Tomcat 有很多配置文件,其中一个是  catalina.properties ,本文介绍catalina.properties 中的设置项. 一.组成   catalina.properties ...

  10. 图连通性【tarjan点双连通分量、边双联通分量】【无向图】

    根据 李煜东大牛:图连通性若干拓展问题探讨 ppt学习. 有割点不一定有割边,有割边不一定有割点. 理解low[u]的定义很重要. 1.无向图求割点.点双联通分量: 如果对一条边(x,y),如果low ...