@@ -58,6 +58,7 @@ def jsonify(*args, **kwargs):
58
58
59
59
app = Flask (__name__ , template_folder = tmpl_dir )
60
60
app .debug = bool (os .environ .get ('DEBUG' ))
61
+ app .config ['JSONIFY_PRETTYPRINT_REGULAR' ] = True
61
62
62
63
app .add_template_global ('HTTPBIN_TRACKING' in os .environ , name = 'tracking_enabled' )
63
64
@@ -86,8 +87,7 @@ def jsonify(*args, **kwargs):
86
87
"host" : "httpbin.org" , # overrides localhost:5000
87
88
"basePath" : "/" , # base bash for blueprint registration
88
89
"schemes" : [
89
- "https" ,
90
- "http"
90
+ "https"
91
91
],
92
92
'protocol' : 'https' ,
93
93
'tags' : [
@@ -513,17 +513,58 @@ def redirect_to():
513
513
- Redirects
514
514
produces:
515
515
- text/html
516
- parameters:
517
- - name: url
518
- type: string
519
- - name: status_code
520
- type: int
516
+ get:
517
+ parameters:
518
+ - in: query
519
+ name: url
520
+ type: string
521
+ required: true
522
+ - in: query
523
+ name: status_code
524
+ type: int
525
+ post:
526
+ consumes:
527
+ - application/x-www-form-urlencoded
528
+ parameters:
529
+ - in: formData
530
+ name: url
531
+ type: string
532
+ required: true
533
+ - in: formData
534
+ name: status_code
535
+ type: int
536
+ required: false
537
+ patch:
538
+ consumes:
539
+ - application/x-www-form-urlencoded
540
+ parameters:
541
+ - in: formData
542
+ name: url
543
+ type: string
544
+ required: true
545
+ - in: formData
546
+ name: status_code
547
+ type: int
548
+ required: false
549
+ put:
550
+ consumes:
551
+ - application/x-www-form-urlencoded
552
+ parameters:
553
+ - in: formData
554
+ name: url
555
+ type: string
556
+ required: true
557
+ - in: formData
558
+ name: status_code
559
+ type: int
560
+ required: false
521
561
responses:
522
562
302:
523
563
description: A redirection.
524
564
"""
525
565
526
- args = CaseInsensitiveDict (request .args .items ())
566
+ argsDict = request .form .to_dict (flat = True ) if request .method in ('POST' , 'PATCH' , 'PUT' ) else request .args .items ()
567
+ args = CaseInsensitiveDict (argsDict )
527
568
528
569
# We need to build the response manually and convert to UTF-8 to prevent
529
570
# werkzeug from "fixing" the URL. This endpoint should set the Location
@@ -1075,7 +1116,7 @@ def digest_auth(qop=None, user='user', passwd='passwd', algorithm='MD5', stale_a
1075
1116
return response
1076
1117
1077
1118
1078
- @app .route ('/delay/<delay>' )
1119
+ @app .route ('/delay/<delay>' , methods = [ 'GET' , 'POST' , 'PUT' , 'DELETE' , 'PATCH' , 'TRACE' ] )
1079
1120
def delay_response (delay ):
1080
1121
""""Returns a delayed response (max of 10 seconds).
1081
1122
---
@@ -1105,6 +1146,31 @@ def drip():
1105
1146
---
1106
1147
tags:
1107
1148
- Dynamic data
1149
+ parameters:
1150
+ - in: query
1151
+ name: duration
1152
+ type: number
1153
+ description: The amount of time (in seconds) over which to drip each byte
1154
+ default: 2
1155
+ required: false
1156
+ - in: query
1157
+ name: numbytes
1158
+ type: integer
1159
+ description: The number of bytes to respond with
1160
+ default: 10
1161
+ required: false
1162
+ - in: query
1163
+ name: code
1164
+ type: integer
1165
+ description: The response code that will be returned
1166
+ default: 200
1167
+ required: false
1168
+ - in: query
1169
+ name: delay
1170
+ type: number
1171
+ description: The amount of time (in seconds) to delay before responding
1172
+ default: 2
1173
+ required: false
1108
1174
produces:
1109
1175
- application/octet-stream
1110
1176
responses:
@@ -1127,7 +1193,7 @@ def drip():
1127
1193
pause = duration / numbytes
1128
1194
def generate_bytes ():
1129
1195
for i in xrange (numbytes ):
1130
- yield u "*". encode ( 'utf-8' )
1196
+ yield b "*"
1131
1197
time .sleep (pause )
1132
1198
1133
1199
response = Response (generate_bytes (), headers = {
0 commit comments