1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-24 06:59:52 +01:00

urlrewrite: improve POST request support for ikreymer/pywb#178

This commit is contained in:
Ilya Kreymer 2016-05-06 16:32:13 -07:00
parent ab3af90df2
commit e64ae780c6
2 changed files with 9 additions and 5 deletions

View File

@ -1,6 +1,6 @@
import requests import requests
from pywb.rewrite.rewrite_content import RewriteContent from pywb.rewrite.rewrite_content import RewriteContentAMF
from pywb.rewrite.wburl import WbUrl from pywb.rewrite.wburl import WbUrl
from pywb.rewrite.url_rewriter import UrlRewriter from pywb.rewrite.url_rewriter import UrlRewriter
@ -42,7 +42,7 @@ class RewriterApp(object):
frame_type = 'inverse' if framed_replay else False frame_type = 'inverse' if framed_replay else False
self.content_rewriter = RewriteContent(is_framed_replay=frame_type) self.content_rewriter = RewriteContentAMF(is_framed_replay=frame_type)
if not jinja_env: if not jinja_env:
jinja_env = JinjaEnv(globals={'static_path': 'static/__pywb'}) jinja_env = JinjaEnv(globals={'static_path': 'static/__pywb'})
@ -101,6 +101,8 @@ class RewriterApp(object):
inputreq = RewriteInputRequest(environ, urlkey, url, inputreq = RewriteInputRequest(environ, urlkey, url,
self.content_rewriter) self.content_rewriter)
inputreq.include_post_query(url)
mod_url = None mod_url = None
use_206 = False use_206 = False
rangeres = None rangeres = None
@ -203,7 +205,8 @@ class RewriterApp(object):
head_insert_func, head_insert_func,
urlkey, urlkey,
cdx, cdx,
cookie_rewriter) cookie_rewriter,
environ)
status_headers, gen, is_rw = result status_headers, gen, is_rw = result

View File

@ -68,14 +68,15 @@ class DirectWSGIInputRequest(object):
return url return url
mime = self._get_content_type() mime = self._get_content_type()
mime = mime.split(';')[0] if mime else '' #mime = mime.split(';')[0] if mime else ''
length = self._get_content_length() length = self._get_content_length()
stream = self.env['wsgi.input'] stream = self.env['wsgi.input']
buffered_stream = BytesIO() buffered_stream = BytesIO()
post_query = extract_post_query('POST', mime, length, stream, post_query = extract_post_query('POST', mime, length, stream,
buffered_stream=buffered_stream) buffered_stream=buffered_stream,
environ=self.env)
if post_query: if post_query:
self.env['wsgi.input'] = buffered_stream self.env['wsgi.input'] = buffered_stream