(十三)python网络通信

本文介绍了Python网络通信的基础知识,包括TCP/IP协议、IP地址、端口概念,以及HTTP和HTTPS的区别。讲解了HTTP的GET和POST方法,并探讨了urllib.request模块如何用于发送HTTP请求。此外,还涉及了JSON数据的解析和解码。
摘要由CSDN通过智能技术生成

一、基本网络知识

1.TCP/IP
  • TCP/IP是非常重要的协议,由IP和TCP两个协议构成。
  • IP(Internet Protocol)是一种低级的路由协议,无法保证所有包都抵达目的地,也不能保证包按顺序抵达。
  • TCP能保证数据包安全地按照发送时的顺序送达目的地。
2.IP地址
  • 每台计算机都必须有一个与众不同的标识,就是IP地址。
  • TCP/IP使用IP地址来标识源地址和目的地址。
3.端口
  • 每一台计算机又有很多网络通信程序在运行,提供网络服务或进行通信,这就需要不同的端口进行通信。
  • 如果把IP地址比作电话号码,那么端口就是分机号码,在进行网络通信时不仅要指定IP地址,还要指定端口号
4.HTTP/HTTPS
(1)HTTP

  HTTP是无连接协议,即在每一次请求时都建立连接,服务器在处理完客户端的请求后,会先应答客户端,然后断开连接,不会一直占用网络资源。

(2)HTTPS与HPPT的区别

  HTTPS使用https:// 代替http:// , HTTPS使用端口443,而HTTP使用端口80与TCP/IP通信。

(3)GET方法
  • 用于向指定的资源发出请求,被发送的信息”显示“地跟在URL后面。
  • 它一般只用于读取数据,例如静态图片等。
  • GET方法有点像使用明信片给别人写信,将”新的内容“写在外面,接触到的人都可以看到,因此不安全。
(4) POST方法
  • 用于向指定的资源提交数据,请求服务器进行处理,例如提交表单或者上传文件等。数据被包含在请求中。
  • POST方法像是把”信中内容“装入信封中,接触到该信封的人都看不到信的内容,因此相对安全。

二、urllib.request模块——访问互联网资源

1.发送GET请求

  如果要发送HTTP/HTTPS的GET请求,则可以使用urllib.request的Request对象。

#coding=utf-8

import urllib.request  #导入模块

#URL中“?”后的内客是请求参数,多个参数之间以“&”分隔,action=query是一对参数,action是参数名,query是参数值
url = 'http://localhost:8080/NoteWebService/note.do?action=query&ID=10'  #请求URL网址

req = unllib.request.Request(ur1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python提供了多种库和模块来进行网络通信。其中,常用的是urllib和requests模块。 通过使用urllib模块,可以实现GET请求和POST请求。GET请求可以使用urllib.request的urlopen方法来发送请求并读取响应数据。下面是一个例子: ```python import urllib.request url = 'http://localhost:8080/NoteWebService/note.do?action=query&ID=10' req = urllib.request.Request(url) with urllib.request.urlopen(req) as response: data = response.read() json_data = data.decode() print(json_data) ``` 这个例子展示了如何发送一个GET请求并打印返回的JSON数据。 如果要发送POST请求,可以使用urllib.request的urlopen方法,并在请求中指定请求方法为POST。同时,还需要通过urllib.parse模块将请求的参数进行编码。下面是一个发送POST请求的例子: ```python import urllib.request import urllib.parse url = 'http://localhost:8080/NoteWebService/note.do' data = urllib.parse.urlencode({'action': 'query', 'ID': '10'}).encode() req = urllib.request.Request(url, data=data) # 指定请求方法为POST,并将参数编码后作为请求体 with urllib.request.urlopen(req) as response: data = response.read() json_data = data.decode() print(json_data) ``` 这个例子展示了如何发送一个带有参数的POST请求,并打印返回的JSON数据。 另外,还可以使用requests模块来进行网络通信。这个模块提供了更简洁和方便的接口。下面是一个使用requests模块发送GET请求的例子: ```python import requests url = 'http://localhost:8080/NoteWebService/note.do?action=query&ID=10' response = requests.get(url) json_data = response.text print(json_data) ``` 这个例子展示了如何使用requests模块发送一个GET请求并打印返回的JSON数据。 总结起来,Python提供了多种库和模块来进行网络通信,其中urllib和requests是常用的两个模块。通过它们,可以实现GET请求和POST请求,并处理返回的数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [(十三python网络通信](https://blog.csdn.net/m0_56517198/article/details/128943900)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [python_网络网络通信](https://blog.csdn.net/cwy0502/article/details/93058042)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤傲倾城

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值