为什么Pycurl返回失败

伊利亚(Ilya Glushchenko)

我正在Python上编写应用程序,该应用程序通过各种代理发送发布请求。我使用PycURL库。在我的Linux机器上,相同的代码运行良好但是在Windows中,响应正文有时仅包含“ FAILED”,而不包含任何HTTP代码或连接失败。我在Linux上没有看到它,所以我真的很困惑,我已经花了一天的时间来找出问题所在。有人可以帮我吗?

这是我的代码:

while (success_request != True) and (self.is_need_to_stop() == False):
    current_proxy = self.get_random_proxy() 
    post_data = {'data' : data }
    request_url = 'http://www.example.com'

    _stringio = StringIO()
    _curl = pycurl.Curl()
    _curl.setopt(pycurl.URL, request_url)
    _curl.setopt(pycurl.WRITEFUNCTION, _stringio.write)
    _curl.setopt(pycurl.POSTFIELDS, urlencode(post_data))
    _curl.setopt(pycurl.PROXY, current_proxy['address'])
    _curl.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_HTTP)
    _curl.setopt(pycurl.USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.41 Safari/534.7')
    _curl.setopt(pycurl.CONNECTTIMEOUT, 15)
    _curl.setopt(pycurl.TIMEOUT, 15)
    _curl.setopt(pycurl.VERBOSE, True)             

    try:
        _curl.perform()
    except Exception:
        print "Proxy: '{0}' is not working!".format(current_proxy['address'])
        success_request = False
        self.del_bad_proxy(current_proxy['index'])
        continue

    _curl.close()

    if self.check_responce(_stringio.getvalue().decode('utf-8')) == False:
        print _stringio.getvalue().decode('utf-8')
        print "Proxy: '{0}' returns 'bad' response!".format(current_proxy['address'])
        self.del_bad_proxy(current_proxy['index'])
        continue
    else:
        success_request = True
        self.proxy_list[current_proxy['index']]['requests_number'] += 1
        self.comments_number += 1
        self.window.comment_posted(self.comments_number)

这是问题输出:

* About to connect() to proxy 85.15.234.1 port 8081 (#0)
*   Trying 85.15.234.1... * connected
* Connected to 85.15.234.1 (85.15.234.1) port 8081 (#0)
> POST http://www.example.com HTTP/1.1    
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.41 Safari/534.7    
Host: http://www.example.com    
Accept: */*    
Proxy-Connection: Keep-Alive    
Content-Length: 42    
Content-Type: application/x-www-form-urlencoded    

< HTTP/1.1 200 OK   
< Server: nginx  
< Date: Mon, 29 Dec 2014 11:00:55 GMT   
< Content-Type: text/html  
< P3P: policyref="/p3p.xml", CP="NOI CURa ADMa DEVa TAIa OUR BUS IND UNI COM NAV INT" 
< Vary: Accept-Encoding    
< Content-Length: 6   
< 

* Connection #0 to host 85.15.234.1 left intact
* Closing connection #0
FAILED
Proxy: '85.15.234.1:8081' returns 'bad' response!
* timeout on name lookup is not supported
伊利亚(Ilya Glushchenko)

好吧,事实证明,Windows中的pycurl和Linux中的pycurl内部有些不同。因此,我使用请求库重写了代码,现在它可以完美运行了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么此返回失败?

来自分类Dev

为什么 Akismet 返回密钥验证失败?

来自分类Dev

使用返回的模板参数创建对象失败,为什么?

来自分类Dev

为什么Future(Failure(new Exception))返回成功而不是失败?

来自分类Dev

为什么WinAPI FormatMessage失败,总是返回false

来自分类Dev

为什么绑定函数返回-1(绑定失败)?

来自分类Dev

为什么此登录仅返回失败?Laravel 5.3

来自分类Dev

为什么 test() 在应该失败时返回 True?

来自分类Dev

为什么失败的猫返回1,而其他失败的返回2?

来自分类Dev

为什么我不能使用pyCurl发布到Django?

来自分类Dev

为什么我不能使用pyCurl发布到Django?

来自分类Dev

为什么规格失败?

来自分类Dev

为什么mmap失败?

来自分类Dev

为什么规格失败?

来自分类Dev

为什么CryptImportKey失败?

来自分类Dev

为什么会失败?

来自分类Dev

SED失败,为什么?

来自分类Dev

为什么GetThreadTimes返回

来自分类Dev

为什么返回元组?

来自分类Dev

为什么返回零?

来自分类Dev

为什么operator =返回* this?

来自分类Dev

为什么返回0?

来自分类Dev

为什么终止挂起的(不可恢复的)服务实例会返回“失败”,但是却终止了

来自分类Dev

为什么`splice.apply(arguments,0)`失败而`splice.call(arguments,0)`返回数组

来自分类Dev

当返回的消息为“ ActiveRecord :: RecordInvalid”时,为什么此rspec“期望引发raise_error”失败

来自分类Dev

为什么用方法返回指针会使测试在调试模式下失败?

来自分类Dev

PDO无法使事务内部的操作失败,但是commit返回true。为什么?

来自分类Dev

为什么“ ftp_fget”在PHP中返回“ bind()失败:权限被拒绝(13)”?

来自分类Dev

为什么终止挂起的(不可恢复的)服务实例会返回“失败”,但又终止了

Related 相关文章

  1. 1

    为什么此返回失败?

  2. 2

    为什么 Akismet 返回密钥验证失败?

  3. 3

    使用返回的模板参数创建对象失败,为什么?

  4. 4

    为什么Future(Failure(new Exception))返回成功而不是失败?

  5. 5

    为什么WinAPI FormatMessage失败,总是返回false

  6. 6

    为什么绑定函数返回-1(绑定失败)?

  7. 7

    为什么此登录仅返回失败?Laravel 5.3

  8. 8

    为什么 test() 在应该失败时返回 True?

  9. 9

    为什么失败的猫返回1,而其他失败的返回2?

  10. 10

    为什么我不能使用pyCurl发布到Django?

  11. 11

    为什么我不能使用pyCurl发布到Django?

  12. 12

    为什么规格失败?

  13. 13

    为什么mmap失败?

  14. 14

    为什么规格失败?

  15. 15

    为什么CryptImportKey失败?

  16. 16

    为什么会失败?

  17. 17

    SED失败,为什么?

  18. 18

    为什么GetThreadTimes返回

  19. 19

    为什么返回元组?

  20. 20

    为什么返回零?

  21. 21

    为什么operator =返回* this?

  22. 22

    为什么返回0?

  23. 23

    为什么终止挂起的(不可恢复的)服务实例会返回“失败”,但是却终止了

  24. 24

    为什么`splice.apply(arguments,0)`失败而`splice.call(arguments,0)`返回数组

  25. 25

    当返回的消息为“ ActiveRecord :: RecordInvalid”时,为什么此rspec“期望引发raise_error”失败

  26. 26

    为什么用方法返回指针会使测试在调试模式下失败?

  27. 27

    PDO无法使事务内部的操作失败,但是commit返回true。为什么?

  28. 28

    为什么“ ftp_fget”在PHP中返回“ bind()失败:权限被拒绝(13)”?

  29. 29

    为什么终止挂起的(不可恢复的)服务实例会返回“失败”,但又终止了

热门标签

归档