u如何设置url参数不自动转码_No.8 如何在2019年12月跟踪一本书

如何在

深圳图书馆

跟踪一本书

08

本文成于去年十二月,因写得太差不好意思发。现在二十多年过去了,活鱼格勒发了不少写得比这篇还要差得多的文,所以不如把这篇也发了吧。

    既然我在图书馆失去了尤达大师,根据一些定理,易证我可以在图书馆把大师找回来。不仅要找回来,而且还要通知我,大师有没有被别人借走。

    本文将以C#在.NET框架下实现针对深圳图书馆的爬虫程序,并加入提醒机制。像上一篇推送一样,在开始实现前我们需要讨论一些有关的问题。

293a15f1e06592a4617f24c1db9aa710.gif

 HTTP请求

请求是一个很直观的过程:客户向服务器发送一个请求,服务器送回它的响应。发送请求的单位是报文,不同的网络协议要求不同格式的报文,这里不展开讨论。下面是我们将使用的HTTP协议的报文格式:

32f6527b67e9f222d68f6a2b5b600f9b.png

URL:接收请求的地址。一般来说浏览器上部地址框中展示的就是指向当前网页的URL。

请求方法:HTTP有六种请求方法,常用的是GET和POST。GET方法将请求的内容添加在URL后,以‘?’字符与URL主体分隔开来,因此使用GET方法的HTTP报文往往没有上图的“请求数据”。POST方法则将请求内容存放在报文末端的请求数据中。

由于GET格式的请求数据是直接包含在URL内的,而URL又必须按照相关协议规定以明文展示,所以可以很方便地分析GET请求。比如,百度搜索“晒布路”,实际请求的URL为:

40c8f9da3aac98c9be72fe60ddf35e8b.png

其中的……wd=%E6%99%92%E5%B8%83%E8%B7%AF是按照UTF-8编码转码“晒布路”三个中文字符得到的。这里不展开讨论字符编码和百分号编码格式,大部分浏览器甚至库函数会自动完成这种编码。

293a15f1e06592a4617f24c1db9aa710.gif

用C#实现HTTP请求

    众所周知,.NET框架下有大量封装良好的库函数,相比于C/C++的关注底层实现,C#的关注于上层功能使人感到极度的愉悦。

    为了实现GET方式的HTTP请求,我们使用HttpWebRequestHttpWebResponse类,这两个类位于System.Net命名空间下。

---HttpWebRequest---

这个类支持大量的HTTP报文属性。在本例中我们只需要简单地提交一个GET请求,因此这里不展开讨论这些属性。

创建一个HttpWebRequest类:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(webpath);

构造函数的参数即为请求的URL。

之后,设置这个实例的请求类型为GET:

request.He
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值