繁体   English   中英

Pycurl在终端中保持打印

[英]Pycurl keeps printing in terminal

我是一名初学者,使用Python和Pycurl进行网页强调测试。 然而,pycurl在终端中不断打印出返回的html,这使得压力测试花费的时间比它应该的更多。 我正在使用的一个这样的pycurl代码发布在下面。 有没有办法只需运行pycurl而无需在任何地方打印或写入结果? 任何援助都会受到谴责。

p = pycurl.Curl()
p.setopt(pycurl.POST, 0)
p.setopt(pycurl.COOKIE, sessioncookie)
p.setopt(pycurl.URL, 'http://example.com/logoff.php')
p.perform()
p.close()

Pycurl文档很糟糕,但我想你想把WRITEFUNCTION设置为一个什么都不做的函数,例如

p.setopt(pycurl.WRITEFUNCTION, lambda x: None)

此外,我希望声明我认为“SET做的一切”API与VMS一起发布。 Gaaah。

可以试试吗?

devnull = open('/dev/null', 'w')
p.setopt(pycurl.WRITEFUNCTION, devnull.write)

或者只是一个什么都不做的功能。

我在这里列出的两种方法都没有运气。 两者都导致以下错误:

pycurl.error: (23, 'Failed writing body (0 != 108)')

根据文档, lambda x: Nonedevnull.write应该是不错的选择:

WRITEFUNCTION回调可能会返回写入的字节数 如果此数字不等于字节字符串的大小,则表示错误,libcurl将中止请求。 返回None是一种替代方法 ,用于指示回调已经消耗了传递给它的所有字符串,因此成功了。

http://pycurl.sourceforge.net/doc/callbacks.html#WRITEFUNCTION

但是在我的项目中,我必须执行以下操作来解决此问题:

c.setopt(pycurl.WRITEFUNCTION, lambda bytes: len(bytes))

换句话说,当我查看时,返回写入的字节数是不可选的。 devnull.write实际上确实返回写入的字节数,但我没有考虑过。 可能存在字节与字符串的问题。

请注意,我使用的是Python 3.我猜这不适用于Python 2。

要隐藏输出,请将VERBOSE更改为0:

p.setopt(pycurl.VERBOSE, 0)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM