2011-10-05 16 views
7

numaralı terminalde baskı yapmaya devam ediyor Web sayfası stres testi için Python ve Pycurl'ı kullanmaya başladım. Bununla birlikte, pycurl, stres testini olması gerekenden daha fazla zaman almasını sağlayan terminalde iade edilen html'yi yazdırmaya devam eder. Kullandığım böyle bir pycurl kodu aşağıda yayınlanmıştır. Sadece bir yere basmak ya da yazmak zorunda kalmadan pycurl çalıştırmak için bir yolu var mı? Herhangi bir yardım başvurulacaktır.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() 

cevap

19

pycurl dokümantasyon korkunç, ama hiçbir şey yapmaz bir işleve, örn WRITEFUNCTION ayarlamak istediğiniz düşünüyorum

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

Ayrıca, ben "SET herşey yok" API'ler VMS ile dışarı çıktı düşündük kayıt için belirtmek isterim. Gaaah.

+0

Bu çalıştı. Teşekkürler: D – jyim89

+0

'Pycurl belgeleri korkunç '- bu yüzden doğru – ddnomad

3

Bunu deneyebilir miydin? Ya da hiçbir şey yapmadan sadece bir işlev olan

1

Burada listelenen iki yaklaşımla hiç şansım olmadı. Ikisi de aşağıdaki hata kurşun: Belgelere göre

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

hem lambda x: None ve devnull.write iyi seçenekler olmalı:

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

The WRITEFUNCTION callback may return the number of bytes written. If this number is not equal to the size of the byte string, this signifies an error and libcurl will abort the request. Returning None is an alternate way of indicating that the callback has consumed all of the string passed to it and, hence, succeeded.

Ancak benim projede ben düzeltmek için aşağıdaki yapmak zorunda Bu sorun: ( )Diğer bir deyişle, baktığımda yazılan bayt sayısını döndürmek isteğe bağlı değildi. devnull.write aslında yazılan bayt sayısını döndürür, buna rağmen bakmadım. Muhtemelen bayt vs dizeleri ile ilgili bir sorun var. Ben bu çıktıyı gizlemek için Python 2.

0

için geçerli değildir tahmin ediyorum Python 3. kullanıyorum

Not 0'a VERBOSE değiştirin:

p.setopt(pycurl.VERBOSE, 0)