Python 3 нормализует URL-адресPython

Программы на Python
Anonymous
Python 3 нормализует URL-адрес

Сообщение Anonymous »

Хорошо, очевидно, что Python 3 довольно нелеп, когда дело касается urllib.

Итак, у меня есть такой URL-адрес, отформатированный следующим образом:

Код: Выделить всё

http_request = "http://localhost/system/index.php/index_file/store?cid={0}&cname={1}&fname={2}&fdir='{3}'"\
.format(client_id, client_name, each[1], each[2])
где каждый[1] и каждый[2] — это имена файлов и каталоги файлов соответственно.

Итак, сгенерированный результат http_request через print() даст что-то вроде этого:

Код: Выделить всё

http://localhost/system/index.php/index_file/store? \
cid=90823&cname=John Smith&fname=Sample Document.doc& \
fdir='C:\Users\williamyang\Desktop\Files\90823 Michelle Moore\Sample Document.doc'
(Одиночная обратная косая черта предназначена именно для того, чтобы она лучше вписывалась сюда. В реальном коде нет одиночных обратных косых черт в конце каждой строки.)

И это было бы прекрасно, если бы я ввел этот URL-адрес в браузер. Приложение PHP получило все индексы через $_GET, а затем без проблем перешло в MySQL.

Но если я позволю Python сделать это,

PHP сообщит мне, что индексы $_GET['fname'] и $_GET['fdir'] не существуют!!! Какое безумие. Хорошо, тогда

Я попробовал все, начиная с urllib.parse, кодирования и декодирования urllib, http_request.replace('\\', '/') и многих других.

Ничего из этого не помогло.

Мой профессор однажды сказал мне, что Python делает забавные вещи, когда дело касается кодировки символов.

Вот как я отправляю свой URL-адрес перед всеми сумасшедшими и бесполезными экспериментами по анализу URL-библиотеки

Код: Выделить всё

def getResponseCode(url):
conn = urllib.request.urlopen((url))
return conn.read()
Где url = http_request

Как мне решить эту проблему?

PHP говорит, что $_GET['fname'] и $_GET['fdir'] не существует

Но когда я вставляю автоматически сгенерированный http_request в браузер,

Все в порядке

Вернуться в «Python»