当前位置: 首页 > news >正文

做阿里巴巴网站口碑/链接

做阿里巴巴网站口碑,链接,合肥建设管理学校网站,聊城做网站低费用提问 在过往的使用中对于post请求总是无差别的 requests.post(url, datajson.dumps(data)), 这是错误的使用方式!!! 那么这个data到底如果给值呢? 直接给出结论 data是dict时: requests 内部对这个dict进行了key-valu…
  • 提问
    在过往的使用中对于post请求总是无差别的 requests.post(url='', data=json.dumps(data)), 这是错误的使用方式!!!
    那么这个data到底如果给值呢?

  • 直接给出结论
    • data是dict时: requests 内部对这个dict进行了key-value+&的字符串拼接. 即data作为表单方式进行的提交,对应的request Content-Type 请求头为 application/x-www-form-urlencoded
    • data是json.dumps()序列化后的json字符串时,原样传输, 且报文不携带 Content-Type 请求头, 此时在服务器接受到的报文当然也是可以反序列化json对象出来, 但是没有Content-Type: application/json请求头,如果需要这个请求头不要走弯路直接 requests.post(url, json=data) 这里传dict.
  • 直接通过wireshark抓包即可以看到区别, 以 dict类型的data为例:
    • requests.post(url='', data=data)
      在这里插入图片描述

    • requests.post(url='', data=json.dumps(data))
      在这里插入图片描述

    • requests.post(url='', json=data)
      在这里插入图片描述


下面给出一个TcpServer来演示下,刚好也复习下TcpServer.py的定义方式

  • Tcpserver.py:

    import socket# 创建 socket 对象
    import time, threadingsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # bind 服务
    sock.bind(('127.0.0.1', 8081))# 开启服务端socket监听
    sock.listen(1)  # 设置 100 个 连接上限sock.setblocking(False)readalbe_list = []  # 可读队列
    writeable_list = []  # 可写队列del_list = []def read():print('read running')while 1:for client_socket in readalbe_list:# time.sleep(5)recv_flag = 0# print(f'客户端连接{client_socket}')try:response = b""chunk = client_socket.recv(1)while chunk:recv_flag = 1response += chunkchunk = client_socket.recv(10)print(f'line32: chunk--:: {chunk}')except BlockingIOError as err:if recv_flag:writeable_list.append(client_socket)print(123)if response:print('response: {}'.format(response))threading.Thread(target=read).start()while 1:try:client_socket, client_addr = sock.accept()  # 接收客户端 connect 返回 客户端 socket和 客户端的 地址print(f"接收到新 连接加入可写队列, 客户端socket: {client_socket} \n 客户端地址: {client_addr}")time.sleep(1)readalbe_list.append(client_socket)except BlockingIOError as err:passfor client_socket in writeable_list:send_flag = 0try:send_flag = 1client_socket.send(f'welcome {client_socket}'.encode())except OSError as err:if send_flag:del_list.append(client_socket)if client_socket in readalbe_list:readalbe_list.remove(client_socket)  # 短连接 收发完成移除队列client_socket.close()for each in del_list:if each in writeable_list:writeable_list.remove(each)del_list.clear()
    
  • client_demo.py

    import requestsdata = {"id": 99800005,"hot_push_program": [{"program_id": 200370447,"program_name": "乐享汇: 新的唱响 演唱会(11)","content_type": 1999,"starttime": time.time(),"endtime": time.time()}],"accesstoken": "TOKEN3590","relevance_id": 0
    }
    requests.post(url="http://127.0.0.1:8081/", data=data)
    
  • Tcpserver.py的打印:

    POST / HTTP/1.1
    Host: 127.0.0.1:8081
    Connection: keep-alive
    Accept-Encoding: gzip, deflate
    Accept: */*
    User-Agent: python-requests/2.22.0
    Content-Length: 188
    Content-Type: application/x-www-form-urlencodedhot_push_program=program_name&hot_push_program=starttime&hot_push_program=endtime&hot_push_program=content_type&hot_push_program=program_id&id=99800005&accesstoken=TOKEN3590&relevance_id=0
    

  • 附: 另外表单还有另外一种Content-Typemultipart/form-data; boundary=xxx
    这种方式是以bondary为分割符分割报文流,适用于海报、大文件等文件流传输
    下附两种表单请求头的区别
  • multipart/form-data
    以上传海报的案例:
    在这里插入图片描述
    可以看到 multipart/form-data 格式的数据在tcp报文呈现出的会是指定一个分隔符boundary
  • x-www-form-urlencoded
    在这里插入图片描述
    报文段也是有分隔符不过是默认的&
http://www.jmfq.cn/news/4962781.html

相关文章:

  • 阿里云wordpress发邮件/选择宁波seo优化公司
  • 网站维护难做/seo相关岗位
  • 做网站需要记哪些代码/视频外链平台
  • 毕设做网站些什么比较简单/优化网站建设
  • 黑科技推广软件/郑州seo优化顾问
  • wordpress快速安装/网站seo 工具
  • 最好网站制作工具/seminar
  • 棒的外贸网站建设/郑州网站推广电话
  • 网站的建设方案/股票发行ipo和seo是什么意思
  • 网站定位的核心意义/充电宝关键词优化
  • 建设工程资料下载网站/东莞seo排名扣费
  • 地方战友网站建设/百度搜索推广产品
  • 濮阳建网站/dw如何制作网页
  • 个人电脑做网站服务器网站/搜索引擎排名优化建议
  • 免费建站软件哪个最好/seo入门培训课程
  • 网站能找到做网站的人/常用的网站推广方法
  • 深圳做网站应该怎么做/便民信息微信平台推广
  • 哪个网站可以做c语言的题/网站规划
  • 济宁网站建设神华科技/面点培训学校哪里有
  • vb net 做网站/百度竞价排名
  • 自己做网站需要钱吗/seo技术培训江门
  • 网页二级页面设计/百度seo排名优化软件
  • 有网站了怎么做app/江门网站建设模板
  • 网站建设的市场策划/营销推广
  • 竭诚网络网站建设开发/郑州seo技术顾问
  • 可以做数学题的网站/链接地址
  • 怎么把自己的网站放到百度上/营销策略有哪些理论
  • 移动互联网开发技术是什么/站长工具seo综合查询引流
  • 公司网站登陆后台管理中心不能修改前台主页/百度seo查询
  • 西安网站推广公司电话/百度统计流量研究院