C# 带参访问接口,WebClient方式
来源:互联网 发布:淘宝微信返利机器人 编辑:程序博客网 时间:2024/05/22 10:29
1、当参数的数据较大时。WebClient同步。
//实例化
WebClient client = new WebClient();
//地址string path = "http://127.0.0.1/a/b";//数据较大的参数string datastr = "id=" + System.Web.HttpUtility.UrlEncode(ids);//参数转流byte[] bytearray = Encoding.UTF8.GetBytes(datastr);//采取POST方式必须加的header,如果改为GET方式的话就去掉这句话即可client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");//长度client.Headers.Add("ContentLength", bytearray.Length.ToString());//上传,post方式,并接收返回数据(这是同步,需要等待接收返回值)byte[] responseData = client.UploadData(path, "POST", bytearray);//释放client.Dispose();//处理返回数据(一般用json)string srcString = Encoding.UTF8.GetString(responseData);
回到顶部
2、当参数的数据较大时。WebClient异步(接上面的代码)。
//绑定事件,为了获取返回值client.UploadDataCompleted += new UploadDataCompletedEventHandler(UploadDataCallback2);//这里是url地址Uri uri = new Uri(url);//异步post提交,不用等待。client.UploadDataAsync(uri, "POST", bytearray);//接收返回值的方法public static void UploadDataCallback2(Object sender, UploadDataCompletedEventArgs e){ //接收返回值 byte[] data = (byte[])e.Result; //转码 string reply = Encoding.UTF8.GetString(data); //打印日志 LogResult("返回数据:" + reply + "\n");}
回到顶部
3、当参数的数据正常时
//地址string url = "http://127.0.0.1:8080/action?id=" + id + "";//实例化WebClient client = new WebClient();//上传并接收数据Byte[] responseData = client.DownloadData(url);//接收返回的json的流数据,并转码string srcString = Encoding.UTF8.GetString(responseData);
回到顶部
4、超时时间设置
//需要新写个类继承WebClient,并重写//然后实例化,就可以设置超时时间了。例:WebClient webClient = new WebDownload();/// <summary>/// WebClient 超时设置/// </summary>public class WebDownload : WebClient{ private int _timeout; // 超时时间(毫秒) public int Timeout { get { return _timeout; } set { _timeout = value; } } public WebDownload() {
//设置时间 this._timeout = 60000000; } public WebDownload(int timeout) { this._timeout = timeout; } protected override WebRequest GetWebRequest(Uri address) { var result = base.GetWebRequest(address); result.Timeout = this._timeout; return result; }}
回到顶部
5、WebRequest方式
//地址string url = "http://127.0.0.1/a/b?pro=" + pro;//传的参数string datastr1 = "id=" + System.Web.HttpUtility.UrlEncode(ids);//转成字节byte[] bytearray1 = Encoding.UTF8.GetBytes(datastr1);//创建WebRequestHttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(url);//POST方式webrequest.Method = "POST";// <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)webrequest.ContentType = "application/x-www-form-urlencoded";//获取字节数webrequest.ContentLength = Encoding.UTF8.GetByteCount(datastr1);//获取用于写入请求数据的 System.IO.Stream 对象Stream webstream = webrequest.GetRequestStream();//向当前流中写入字节序列,并将此流中的当前位置提升写入的字节数。webstream.Write(bytearray1, 0, bytearray1.Length);//获取返回数据HttpWebResponse response = (HttpWebResponse)webrequest.GetResponse();//转码StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);//返回的结果string ret = sr.ReadToEnd();//关闭sr.Close();response.Close();webstream.Close();
转载自 http://www.cnblogs.com/cang12138/p/5896187.html
阅读全文
0 0
- C# 带参访问接口,WebClient方式
- 检查页面是否带参访问
- 关于Webview带参访问服务器
- Android通过HTTP POST带参访问asp.net网页
- 通过URL传参访问webservice
- C#利用webclient和webrequest来访问网页(已测webclient)
- Cognos11中通过URL传参访问动态Report
- C#利用WebClient 两种方式下载文件
- WebClient调用远程接口
- C#如何调用axis发布的带HTTP Basic Authentication验证的接口配置方式
- C#下载文件:WebClient
- C# WebClient gzip
- c# webclient下载网页
- C#网页采集数据的几种方式(WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)
- C#网页采集数据的几种方式(WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)
- 【转载】C#网页采集数据的几种方式(WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)
- C# 文件下载(WebClient)
- C# WebRequest WebClient Post请求
- Struts2 S2-003
- 完美编写java中equals方法的建议
- mysql绿色版免安装指导
- js判断PC还是手机自动跳转代码
- 30 种 SQL 查询语句的优化方法
- C# 带参访问接口,WebClient方式
- maven项目中,项目上有红叉,但是文件上没有红叉,解决方法如下:
- node邮件发送(nodemailer)
- kernel4.x imx6 GPIOLIB_API 输出电平问题
- IDEA + Maven + lombok的使用
- [Spring] Spring Reactor 使用自定义配置
- Windows7下破解安装IntelliJ IDEA2017实战
- Andoid应用更新,解决andrid5.0获取系统权限把下载APK存到SD卡中,版本号的比较,有手动更新和自动更新
- Maven环境搭建