摘要: 这段时间因项目需要,要实现WinForm下的文件上传,个人觉得采用FTP方法太麻烦,还得配置FTP服务器,要通过防火墙也是一个麻烦。本来打算采用WebClient方法,但是采用这个方法实现后,进度条很短时间后就达到最大值,要等待一段时间才能传送完毕,要是文件太大(我这里测试约100M),会出现错误。后来才知道,原来WebClient是在加载完整个文件到内存后才真正开始上传,怪不得会出现前面的问题了。不得已参考了很多文章,老外的一个文章对我启发很大(http://blogs.msdn.com/johan/archive/2006/11/15/are-you-getting-outofmemory 阅读全文
posted @ 2012-03-14 21:26 郑文亮 阅读(1238) 评论(3) 推荐(1) 编辑
摘要: 假如某网站有个表单,例如(url:http://localhost/login.aspx):帐号密码我们需要在程序中提交数据到这个表单,对于这种表单,我们可以使用WebClient.UploadData方法来实现,将所要上传的数据拼成字符即可,程序很简单:stringuriString="http://localhost/login.aspx";//创建一个新的WebClient实例.WebClientmyWebClient=newWebClient();stringpostData="Username=admin&Password=admin" 阅读全文
posted @ 2012-03-14 19:28 郑文亮 阅读(614) 评论(0) 推荐(1) 编辑
摘要: 在C#中有HttpWebRequest类,可以很方便用来获取http请求,但是这个类对Post方式没有提供一个很方便的方法来获取数据。网上有很多人提供了解决方法,但都参差不齐,这里我把我使用的方法总结出来,与大家分享。本文精华:实现了post的时候即可以有字符串的key-value,还可以带文件。Post数据格式Post提交数据的时候最重要就是把Key-Value的数据放到http请求流中,而HttpWebRequest没有提供一个属性之类的东西可以让我们自由添加Key-Value,因此就必须手工构造这个数据。根据RFC 2045协议,一个Http Post的数据格式如下:Content-Ty 阅读全文
posted @ 2012-03-14 18:51 郑文亮 阅读(724) 评论(0) 推荐(0) 编辑
摘要: 无论使用任何语言做模拟登陆或者抓取访问页面,无外乎以下思路:第一 启用一个web访问会话方法或者实例化一个web访问类,如.net中的HttpWebRequest;第二 模拟POST或者GET方式提交的数据;第三 模拟请求的头;第四 提交请求并获得响应,及对响应做我们所需要的处理。这里我们以人人网的登录为例,将涉及到POST以及GET两种请求方式。在之前的文章《免费网页抓包工具,火狐插件FireBug的抓包使用教程》中我们知道,登陆人人网的时候,一共做了一个POST请求以及两个GET请求,如下图:观察这三个请求的详细信息,不难看出第一个GET请求的地址可以由POST的响应得到,而第二个GET请 阅读全文
posted @ 2012-03-14 16:12 郑文亮 阅读(4707) 评论(1) 推荐(0) 编辑
摘要: 这个需求来自于我最近练手的一个项目,在项目中我需要将一些自己发表的和收藏整理的网文集中到一个地方存放,如果全部采用手工操作工作量大而且繁琐,因此周公决定利用C#来实现。在很多地方都需要验证用户身份才可以进行下一步操作,这就免不了POST请求来登录,在实际过程中发现有些网站登录是HTTPS形式的,在解决过程中遇到了一些小问题,现在跟大家分享。通用辅助类下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中发送GET/HTTP/HTTPS请求,因为有的时候需要获取认证信息(如Cookie),所以返回的是HttpWebResponse对象,有了返回的HttpWebResponse实 阅读全文
posted @ 2012-03-14 15:57 郑文亮 阅读(877) 评论(1) 推荐(1) 编辑
摘要: 这两天因为工作的需要,需要做一个winform上传数据到服务器端的程序。当时第一个想法是通过webservice的方式来实现,后来觉得麻烦,想偷懒就没有用这样的方式,http的post方式变成了第一选择。因为以前用的都是httpwebrequest之类的东西进行post提交,winform下面还真的是第一次,不过很快就在网上找到了webclient这个类,接下来开始实现功能,话说webclient用起来还真的很简单,一个头信息的声明,然后是URL,最后是post的数据,就完事了。正在高兴的时候发现了一个问题。之前post的全是字符串之类的信息,可是接下来要同时post数据和文件,这个该怎么办呢 阅读全文
posted @ 2012-03-14 15:50 郑文亮 阅读(592) 评论(2) 推荐(0) 编辑
摘要: FORM元素的enctype属性指定了表单数据向服务器提交时所采用的编码类型,默认的缺省值是“application/x-www-form-urlencoded”。 然而,在向服务器发送大量的文本、包含非ASCII字符的文本或二进制数据时这种编码方式效率很低。 在文件上载时,所使用的编码类型应当是“multipart/form-data”,它既可以发送文本数据,也支持二进制数据上载。 Browser端<form>表单的ENCTYPE属性值为multipart/form-data,它告诉我们传输的数据要用到多媒体传输协议,由于多媒体传输的都是大量的数据,所以规定上传文件必须是post 阅读全文
posted @ 2012-03-14 15:21 郑文亮 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 将数据作为XML数据发送,例如:public void PostXml(string url, string xml){byte[] bytes = Encoding.UTF8.GetBytes(xml);HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);request.Method = "POST";request.ContentLength = bytes.Length;request.ContentType = "text/xml";using (Stream requ 阅读全文
posted @ 2012-03-14 11:18 郑文亮 阅读(18363) 评论(3) 推荐(3) 编辑
摘要: NSString 转换成NSData 对象 NSData* xmlData = [@"testdata" dataUsingEncoding:NSUTF8StringEncoding]; NSData 转换成NSString对象 NSData * data; NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSData 转换成char* NSData *data; char *test=[data bytes]; char* 转换成NSData对象 阅读全文
posted @ 2012-03-14 09:43 郑文亮 阅读(570) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示