代码之家  ›  专栏  ›  技术社区  ›  g.d.d.c

Python URLLib/URLLib2 POST

  •  36
  • g.d.d.c  · 技术社区  · 15 年前

    我正在尝试使用wx/Python创建一个超级简单的虚拟输入/输出板。我已经为我向服务器的一个请求准备了以下代码,我将在其中存储数据:

    data = urllib.urlencode({'q': 'Status'})
    u = urllib2.urlopen('http://myserver/inout-tracker', data)
    for line in u.readlines():
      print line
    

    没什么特别的。我遇到的问题是,根据我读取文档的方式,这应该执行Post请求,因为我提供了数据参数,而这并没有发生。我在该url的索引中有以下代码:

    if (!isset($_POST['q'])) { die ('No action specified'); }
    echo $_POST['q'];
    

    --编辑--

    data = urllib.urlencode({'q': 'Status'})
    h = httplib.HTTPConnection('myserver:8080')
    headers = {"Content-type": "application/x-www-form-urlencoded", 
               "Accept": "text/plain"}
    h.request('POST', '/inout-tracker/index.php', data, headers)
    r = h.getresponse()
    print r.read()
    

    我仍然不确定为什么urllib2库在我提供数据参数时没有发布-文档表明它应该发布。

    1 回复  |  直到 7 年前
        1
  •  48
  •   bobince    15 年前
    u = urllib2.urlopen('http://myserver/inout-tracker', data)
    h.request('POST', '/inout-tracker/index.php', data, headers)
    

    使用路径 /inout-tracker / 无法获取 index.php 302 /

    执行302通常会导致客户机将POST转换为GET请求。