mirror of
https://github.com/esp8266/Arduino.git
synced 2025-08-18 17:42:23 +03:00
optionally allow redirects on HTTPClient & OTA updates (#5009)
* optionally allow redirects on http OTA updates * Refactored HTTPClient::begin(url...) & setURL functions, now only beginInternal parses URL, sets ports Added HTTPRedirect example. * fix indentation for style check * add space after while for style check * don't use deprecated begin method in redirect example * moved redirect handling code to HTTPClient. only GET and HEAD requests are currently handled automatically Redirects that fail to be automatically handled return the redirect code as before * added support for POST/303 redirect added device redirect tests * add missing getLocation() implementation * if the new location is only a path then only update the URI
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
from mock_decorators import setup, teardown
|
||||
from flask import Flask, request
|
||||
from flask import Flask, request, redirect
|
||||
from threading import Thread
|
||||
import urllib2
|
||||
import os
|
||||
@@ -26,6 +26,21 @@ def setup_http_get(e):
|
||||
def get_data():
|
||||
size = int(request.args['size'])
|
||||
return 'a'*size
|
||||
@app.route("/target")
|
||||
def target():
|
||||
return "redirect success"
|
||||
@app.route("/redirect301")
|
||||
def redirect301():
|
||||
return redirect("http://{}:8088/target".format(request.args['host']), code=301)
|
||||
@app.route("/redirect302")
|
||||
def redirect302():
|
||||
return redirect("http://{}:8088/target".format(request.args['host']), code=302)
|
||||
@app.route("/redirect303", methods = ['POST'])
|
||||
def redirect303():
|
||||
return redirect("http://{}:8088/target".format(request.data), code=303)
|
||||
@app.route("/redirect307")
|
||||
def redirect307():
|
||||
return redirect("http://{}:8088/target".format(request.args['host']), code=307)
|
||||
def flaskThread():
|
||||
app.run(host='0.0.0.0', port=8088)
|
||||
th = Thread(target=flaskThread)
|
||||
@@ -35,7 +50,7 @@ def setup_http_get(e):
|
||||
def teardown_http_get(e):
|
||||
response = urllib2.urlopen('http://localhost:8088/shutdown')
|
||||
html = response.read()
|
||||
time.sleep(30)
|
||||
time.sleep(1) # avoid address in use error on macOS
|
||||
|
||||
|
||||
@setup('HTTPS GET request')
|
||||
|
Reference in New Issue
Block a user