标签: httplib

如何发送POST请求?

我在网上找到了这个脚本:

import httplib, urllib
params = urllib.urlencode({'number': 12524, 'type': 'issue', 'action': 'show'})
headers = {"Content-type": "application/x-www-form-urlencoded",
            "Accept": "text/plain"}
conn = httplib.HTTPConnection("bugs.python.org")
conn.request("POST", "", params, headers)
response = conn.getresponse()
print response.status, response.reason
302 Found
data = response.read()
data
'Redirecting to <a href="http://bugs.python.org/issue12524">http://bugs.python.org/issue12524</a>'
conn.close()
Run Code Online (Sandbox Code Playgroud)

但我不明白如何使用它与PHP或params变量内的所有内容或如何使用它.试着让它发挥作用,我可以请一点帮助吗?

python urllib httplib

243
推荐指数
5
解决办法
61万
查看次数

Python urllib vs httplib?

什么时候会有人使用httplib和什么时候urllib?

有什么区别?

我想我准备好urllib使用httplib,我打算制作一个需要发出http请求的应用程序,到目前为止我只在python中使用httplib.HTTPConnection请求,并阅读urllib我看到我也可以使用它来获取请求,那么一个或另一个的好处是什么?

python http urllib httplib

53
推荐指数
5
解决办法
4万
查看次数

HTTPS连接Python

我正在尝试验证该目标是否公开了https Web服务.我有通过HTTP连接的代码,但我不知道如何通过HTTPS连接.我读过你使用SSL,但我也读过它不支持证书错误.我得到的代码来自python文档:

import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("GET", "/index.html")
r1 = conn.getresponse()
print r1.status, r1.reason
Run Code Online (Sandbox Code Playgroud)

有谁知道如何连接到HTTPS?

我已经尝试了HTTPSConenction,但它响应了一个错误代码,声称httplib没有属性HTTPSConnection.我也没有socket.ssl可用.

我已经安装了Python 2.6.4,我认为它没有编译SSL支持.有没有办法将这个支持集成到较新的python中,而无需再次安装它.

我已经安装了OpenSSL和pyOpenSsl,我从其中一个答案中尝试了以下代码:

import urllib2
from OpenSSL import SSL
try: 
    response = urllib2.urlopen('https://example.com')  
    print 'response headers: "%s"' % response.info() 
except IOError, e: 
    if hasattr(e, 'code'): # HTTPError 
        print 'http error code: ', e.code 
    elif hasattr(e, 'reason'): # URLError 
        print "can't connect, reason: ", e.reason 
    else: 
        raise
Run Code Online (Sandbox Code Playgroud)

我有一个错误:

    Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "/home/build/workspace/downloads/Python-2.6.4/Lib/urllib.py", line 87, in …
Run Code Online (Sandbox Code Playgroud)

python ssl https pyopenssl httplib

42
推荐指数
6
解决办法
20万
查看次数

使用Flask代理另一个Web服务

我想将对Flask应用程序发出的请求代理到本机在本地运行的另一个Web服务.我宁愿使用Flask而不是我们的更高级别的nginx实例,这样我们就可以重用我们应用程序内置的现有身份验证系统.我们越能保持这种"单点登录"越好.

是否有现有模块或其他代码来执行此操作?尝试将Flask应用程序连接到像httplib或urllib这样的东西被证明是一种痛苦.

python proxy nginx httplib flask

41
推荐指数
3
解决办法
2万
查看次数

Python-Requests关闭http连接

我想知道,你如何关闭与Requests(python-requests.org)的连接?

有了httplibHTTPConnection.close(),但我如何对请求做同样的事情?

代码如下:

    r = requests.post("https://stream.twitter.com/1/statuses/filter.json", data={'track':toTrack}, auth=('username', 'passwd'))

    for line in r.iter_lines():
        if line:
            self.mongo['db'].tweets.insert(json.loads(line))
Run Code Online (Sandbox Code Playgroud)

提前致谢.

python http urllib2 httplib python-requests

37
推荐指数
5
解决办法
9万
查看次数

Python httplib ResponseNotReady

我正在使用python为elgg编写REST客户端,即使请求成功,我也会回复:

Traceback (most recent call last):
  File "testclient.py", line 94, in <module>
    result = sendMessage(token, h1)
  File "testclient.py", line 46, in sendMessage
    res = h1.getresponse().read()
  File "C:\Python25\lib\httplib.py", line 918, in getresponse
    raise ResponseNotReady()
httplib.ResponseNotReady
Run Code Online (Sandbox Code Playgroud)

看看标题,我看到('content-length','5749'),所以我知道那里有一个页面,但我不能使用.read()来查看它,因为异常出现了.ResponseNotReady是什么意思,为什么我看不到返回的内容?

python rest http httplib

34
推荐指数
2
解决办法
4万
查看次数

IncompleteRead使用httplib

我一直在从特定网站获取RSS订阅源时遇到问题.我最后编写了一个相当丑陋的程序来执行此功能,但我很好奇为什么会发生这种情况以及是否有任何更高级别的接口正确处理此问题.这个问题实际上不是一个显示限制因素,因为我不需要经常检索提要.

我已经阅读了一个捕获异常并返回部分内容的解决方案,但由于不完整的读取实际检索的字节数不同,我不确定这样的解决方案是否真的有效.

#!/usr/bin/env python
import os
import sys
import feedparser
from mechanize import Browser
import requests
import urllib2
from httplib import IncompleteRead

url = 'http://hattiesburg.legistar.com/Feed.ashx?M=Calendar&ID=543375&GUID=83d4a09c-6b40-4300-a04b-f88884048d49&Mode=2013&Title=City+of+Hattiesburg%2c+MS+-+Calendar+(2013)'

content = feedparser.parse(url)
if 'bozo_exception' in content:
    print content['bozo_exception']
else:
    print "Success!!"
    sys.exit(0)

print "If you see this, please tell me what happened."

# try using mechanize
b = Browser()
r = b.open(url)
try:
    r.read()
except IncompleteRead, e:
    print "IncompleteRead using mechanize", e

# try using urllib2
r = urllib2.urlopen(url)
try:
    r.read()
except IncompleteRead, e: …
Run Code Online (Sandbox Code Playgroud)

python feedparser httplib

25
推荐指数
2
解决办法
3万
查看次数

错误:无法启动新线程

我有一个运行跟随配置的网站:

Django + mod-wsgi + apache

在用户的一个请求中,我向另一个服务发送另一个HTTP请求,并通过python的httplib库解决这个问题.

但有时这个服务得不到太长的时间,httplib的超时不起作用.所以我创建线程,在这个线程中我发送请求到服务,并在20秒后加入它(20秒 - 请求超时).这是它的工作原理:

class HttpGetTimeOut(threading.Thread):
    def __init__(self,**kwargs):
        self.config = kwargs
        self.resp_data = None
        self.exception = None
        super(HttpGetTimeOut,self).__init__()
    def run(self):

        h = httplib.HTTPSConnection(self.config['server'])
        h.connect()
        sended_data = self.config['sended_data']
        h.putrequest("POST", self.config['path'])
        h.putheader("Content-Length", str(len(sended_data)))
        h.putheader("Content-Type", 'text/xml; charset="utf-8"')
        if 'base_auth' in self.config:
            base64string = base64.encodestring('%s:%s' % self.config['base_auth'])[:-1]
            h.putheader("Authorization", "Basic %s" % base64string)
        h.endheaders()

        try:
            h.send(sended_data)
            self.resp_data = h.getresponse()
        except httplib.HTTPException,e:
            self.exception = e
        except Exception,e:
            self.exception = e
Run Code Online (Sandbox Code Playgroud)

像这样的东西......

并通过此功能使用它:

getting = HttpGetTimeOut(**req_config)
getting.start()
getting.join(COOPERATION_TIMEOUT)
if getting.isAlive(): #maybe …
Run Code Online (Sandbox Code Playgroud)

python django multithreading mod-wsgi httplib

23
推荐指数
5
解决办法
6万
查看次数

如何使用Python的httplib将POST发送到URL,并带有参数字典?

我只想要一个可以带2个参数的函数:

  • POST到的URL
  • 参数字典

如何用httplib完成?谢谢.

python api post httplib

20
推荐指数
2
解决办法
6万
查看次数

urllib2和httplib线程安全吗?

我正在寻找有关urllib2和httplib的线程安全性的信息.官方文档(http://docs.python.org/library/urllib2.htmlhttp://docs.python.org/library/httplib.html)缺少有关此主题的任何信息; 那里没有提到线程这个词......

UPDATE

好吧,它们不是开箱即用的线程安全.是什么使它们成为线程安全的,或者是否存在可以线程安全的场景?我问,因为它似乎是

  • urllib2在每个线程中使用单独的
  • 不共享线程之间的HTTP连接

足以在线程中安全地使用这些库.类似的使用场景提出了问题urllib2和cookielib线程安全性

python urllib2 thread-safety httplib

20
推荐指数
1
解决办法
9353
查看次数