Python使用指定端口进行http请求的例子

yipeiwu_com7年前Python基础

使用requests库

class SourcePortAdapter(HTTPAdapter):
 """"Transport adapter" that allows us to set the source port."""

 def __init__(self, port, *args, **kwargs):
  self.poolmanager = None
  self._source_port = port
  super().__init__(*args, **kwargs)

 def init_poolmanager(self, connections, maxsize, block=DEFAULT_POOLBLOCK, **pool_kwargs):
  self.poolmanager = PoolManager(
   num_pools=connections, maxsize=maxsize,
   block=block, source_address=('', self._source_port))

s = requests.Session()
s.mount('https://baidu.com', SourcePortAdapter(54321))
s.get('https://baidu.com')

我用wireshark测试发现是走的54321端口。

使用pycurl库

c = pycurl.Curl()
c.setopt(c.URL, 'https://curl.haxx.se/dev/')
c.setopt(c.LOCALPORT, 54321)
c.setopt(c.LOCALPORTRANGE, [52314,56321,5532])
c.perform()
c.close()

测试OK,可以直接在curl命令行中测试。

curl --local-port 12520 http://baidu.com

参考

https://stackoverflow.com/questions/47202790/python-requests-how-to-specify-port-for-outgoing-traffic?rq=1

以上这篇Python使用指定端口进行http请求的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python基于Tkinter实现的记事本实例

本文实例讲述了Python基于Tkinter实现的记事本。分享给大家供大家参考。具体如下: from Tkinter import * root = Tk('Simple Edito...

pyqt 实现在Widgets中显示图片和文字的方法

pyqt 实现在Widgets中显示图片和文字的方法

思路非常简单:<p>创建window,设置窗口大小,创建label1,导入图片,创建label2,导入文字,show,结束!</p> import sys...

python统计中文字符数量的两种方法

方法一: def str_count(str): '''找出字符串中的中英文、空格、数字、标点符号个数''' count_en = count_dg = count_sp = c...

Django查询数据库的性能优化示例代码

Django查询数据库的性能优化示例代码

前言 Django数据层提供各种途径优化数据的访问,一个项目大量优化工作一般是放在后期来做,早期的优化是“万恶之源”,这是前人总结的经验,不无道理。如果事先理解Django的优化技巧,开...

python二维键值数组生成转json的例子

今天出于需要,要将爬虫爬取的一些数据整理成二维数组,再编码成json字符串传入数据库 那么问题就来了,在php中这个过程很简便 ,类似这样: $arr[$key1][$key2]=...