2017-12-08 4 views
2

hier ist mein Anforderungszeile Beispiel:Python, wie http-Anforderungszeile teilen?

GET https://example.com/hello?ageSelections=0&category=6000&productPeriodType=3&resourcePlace=resourcePlace AND 5089=5089-- PStU&twoCategory=6200 HTTP/1.1 

ich diese Zeichenfolge teilen wollen und freuen uns auf zur Folge haben:

['GET', 'https://example.com/hello?ageSelections=0&category=6000&productPeriodType=3&resourcePlace=resourcePlace AND 5089=5089-- PStU&twoCategory=6200', 'HTTP/1.1'] 

Dank :-)

+0

https://docs.python.org/2/library/urlparse .html –

+0

Ist das eine gültige Anfrage? Was ist mit den Leerzeichen in der Anfrage-URI? Wenn Sie eine gültige Anfrage haben, verwenden Sie ['str.split'] (https://docs.python.org/3/library/stdtypes.html#str.split). – Galen

+0

@Galen es ist meine SQL-Injektion Nutzlast, keine gültige Anfrage :) – caratpine

Antwort

2

Zwei mit str.partition und str.rpartition weises Vorgehen (könnte auch durch eine str.split und str.rsplit mit einem maxsplit=1 Parameter jedes Mal durchgeführt werden):

line = 'GET https://example.com/hello?ageSelections=0&category=6000&productPeriodType=3&resourcePlace=resourcePlace AND 5089=5089-- PStU&twoCategory=6200 HTTP/1.1' 
method, _, rest = line.partition(' ') 
url, _, protocol = rest.rpartition(' ') 
parsed_line = [method, url, protocol] 
+0

vielen dank! – caratpine

0

Sie müssen ein bisschen mehr sein präzise mit Spezifikationen wie, ob es eine Schnur ist. Aber da es sich um eine Zeichenfolge handelt es aussehen sollte:

string = GET https://example.com/hello?ageSelections=0&category=6000&productPeriodType=3&resourcePlace=resourcePlace AND 5089=5089-- PStU&twoCategory=6200 HTTP/1.1 

data = string.split(); 

Natürlich, wenn es kein String ist, kann man das nicht.

Verwandte Themen