如何使用python 3+从AJAX客户端访问发送到http.server的头信息?

时间:2014-10-30 21:02:39

标签: python ajax python-3.x server

我正在尝试从使用AJAX发布的本地javascript程序中读取发送到python&#s; http.server的数据。一切都在python 2.7中工作,就像在this示例中一样,但现在在python 3+中,我无法再访问标题以获得文件长度。

  # python 2.7 (works!)
  class handler_class(SimpleHTTPServer.SimpleHTTPRequestHandler):

      def do_POST(self):
          if self.path == '/data':
              length = int(self.headers.getheader('Content-Length'))
              NewData = self.rfile.read(length)

我发现我可以使用urllib.request,正如我在下面嘲笑的那样。但是,我在本地主机上运行,​​并且没有像我在示例中看到的那样有完整的URL,我开始猜测这是否是正确的方法?令人沮丧的是,我可以看到在控制台中打印出的内容长度,但我无法访问它。

  # python 3+ (url?)

  import urllib.request     
  class handler_class(http.server.SimpleHTTPRequestHandler):

      def do_POST(self):
          if self.path == '/data':
              print(self.headers) # I can see the content length here but cannot access it!
              d = urllib.request.urlopen(url) # what url?
              length = int(d.getheader('Content-Length'))
              NewData = self.rfile.read(length)

我尝试的各种网址是:

  self.path 
  http://localhost:8000/data 
  /data

我通常会收到此错误:

  ValueError: unknown url type: '/data'

为什么' urllib.request'让我失望,更重要的是,如何访问“自我”和“自我”。在这个Python3世界中?

0 个答案:

没有答案