如何使用http协议发布博文评论
首先给大家介绍一下实现原理:
向博客帖子提交评论的本质是通过http协议服务器发送帖子请求。在发表评论之前,我们需要做什么?是的,你必须登录。但是登录是另一回事,这里就不讨论了。用户登录后,服务器为客户端设置一个cookie。Http是无状态的。也就是说,客户端向服务器发送请求后,服务器返回响应。通信完成。服务器不会记得是谁向自己发送了请求。因此,客户端需要用服务器设置的cookie向服务器发送请求,并告知服务器自己的身份,服务器根据cookie生成响应。
准备工作:
为了完成这个测试,我注册了一个博客公园小号。登录博客公园后,打开我的博客(DeanHuangChopper),随机打开我的博文,比如《结合php ob函数理解缓冲机制》(我用的是火狐浏览器,最大的优点是发送到服务器时可以直观的看到哪些参数),打开开发者选项,准备记录发送评论的过程。我只是写个评论,做个评论。这一次,开发人员的选择记录了请求。
我们只需要关注请求头。
显然,我们可以通过Http类的setHeader()方法设置请求头信息,并通过post()方法发送。我们先仔细分析一下请求头信息。默认情况下,主机、内容类型、内容长度将由http的一些方法设置,因此我们不需要添加它们。但必须注意的是,Content类型是‘application/JSON;Charset=UTF-8 ',这与“application/x-www-form-URL encoded”的Http默认设置不同。请求体是json,不是数组,所以需要重写原来的Http post方法。
公共函数POST($ body){ $ this-setLine(' POST ');//重置内容类型$ this-set header(' content-type :应用程序/JSON;字符集=UTF-8’;//跳过setBody方法//$ this-setBody($ body);$ this-body[]=$ body;//计算内容长度$ this-set header(' content-length : '。strlen($ this-body[0]);$ this-request();返回$ this-response;}再次修改Http类后,我们就可以完成本文的主要代码编写了。虽然理论上只需要在设置头信息的时候设置cookie的值,但是最好是发送所有的头信息来提高成功率。
在发送评论之前,请查看发送的参数:
我们只需要在‘body’之后填写我们想要发送的内容。
代码部分:
最后,本文的主要代码:
?PHP require ' http . class . PHP ';$ Http=new Http(' http://www . cn blogs.com/MVC/postmmment/add . aspx ');//设置头信息$ http-Set header(' accept-language : zh-cn,zh;q=0.8,en-US;q=0.5,en;q=0.3’);$ http-setHeader(' Accept-language : zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3’);$ http-set header(' Accept-encoding : gzip,deflate ');$ http-setHeader(' X-Requested-with : xmlhttprequest ');$ http-setHeader(' refer :3358 www . cn blogs.com/deanchapper/p/4688667 . html ');$ http-SetHeader(' Cookie : _ ga=GA1 . 2 . 1359064105 . 135906 . 13590641082_ _ gads=ID=e0c 32 FD 6 db 6 e2a 6d :t=1438443900:s=ALNI _ mb6 afcbd 6 gcdhgee3 qvdjynnja;CNBlogsCookie=c 8013 c 91 e 54 c 151 DDA 30 e2c1e 842982338 c 9054 A8 bb 8639 AC 2 dab 7578445 BF 1 df 5 BC 49d 39d 8 be 5 fdac 33541 C4 E4 fa 386 CFD 3 f 946 ea 1d 79d 1e 34809 a4 ccbd 7488 a 1564 1a ef 685 a 6258 cf 3 f 03597 bcaf 5000_ 5t _ trace _ sid=84 a9 ed 0 b 086 C2 c 127551 cf 911 bec 7 b1d;_ 5t _ trace _ TMS=1;_ gat=1’;$ http-setHeader(' pragma : no-cache ');$ http-set header(' Cache-control : no-Cache ');//设置请求正文信息$ msg=' { ' blogapp ' : ' dean chopper ',' postid' :4688667,' body' :' test content ',' parentCommentId ' :0 } }//发送post请求$ http-post($ msg);回应“好”;发送过程可能有点慢,请耐心等待。
以上介绍就是本文的全部内容,希望大家喜欢。
版权声明:如何使用http协议发布博文评论是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。