我想要利用Charles Proxy的web界面功能,使Charles在无头模式下运行,并使用curl命令控制Charles通过http://control.charles。
在终端中,当我运行以下命令时,我得到了我想要的输出:
Charles -headless &
curl -v -x <MY IP ADDRESS HERE> http://control.charles/session/start
curl -o session.chls <MY IP ADDRESS HERE> http://control.charles/session/download
我正在尝试使用subprocess在Python中重现这些命令。最初,我尝试为上面的每个命令打开3个不同的子进程,只意识到它们都需要在同一个会话中。
这是我的实现方式,但我没有得到任何输出:
charles_init = subprocess.Popen(["/bin/bash"],stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
charles_init.stdin.write(b"Charles -headless")
charles_init.stdin.write(b"curl -v -x <MY IP ADDRESS HERE> http://control.charles/session/start")
charles_init.stdin.write(b"curl -o session.chls <MY IP ADDRESS HERE> http://control.charles/session/download")
“Charles -headless&”中的"&"是否相关?据我理解,这个"&"允许Charles在shell内后台运行。当最初打开子进程时,我需要设置shell=True吗?
如果是这样,我如何避免与shell=True相关的安全风险?