首页 > 代码库 > python用socket模拟post请求
python用socket模拟post请求
今天用python的socket模拟了下post请求,通过这个实例可以更加了解python中socket的使用,以及http请求和socket的相互关系等知识.
#coding=utf-8 import socket
if __name__=="__main__": s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("www.xxxxx.com",80))
#pyhon 字符串很长时可以用下面这种括号加双引号的方式, 这样也不用像PHP那样 多行字符串需要用连接符连接起来 。
str=("POST /login/log HTTP/1.1\r\n" "Host: www.xxxxx.com\r\n" "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0\r\n" "Referer: http://www.xxxxx.com/\r\n" "Content-Length: 17\r\n" "Cookie: session=f28edeacd71e759d05a80bb3cd9c91856952b3e3%7E58eb987a9efb26-19897462\r\n" "Content-Type: application/x-www-form-urlencoded\r\n" "Connection: keep-alive\r\n\r\n" "param1=a¶m2=b" ) # post 的关键是头部的 Content-Type: application/x-www-form-urlencoded\r\n 这行,之前只写了x-www-form-urlencoded,提交过去,后端php打印$_POST一直为空
# Content-Length: 17\r\n 的17是内容里要post的参数的长度(即param1=a¶m2=b),注意头部和内容要用 \r\n\r\n 分开
s.send(str) data=s.recv(2084) print data
#服务器一般发送完消息后,经过确认会主动断开socket s.close()
python用socket模拟post请求
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。