Ответ 1
BaseHTTPRequestHandler обработает первую строку, а заголовки HTTP-запроса оставят вас остальными.
Вы должны прочитать оставшуюся часть запроса, используя BaseHTTPRequestHandler.rfile
Вы можете использовать self.send_response(200)
для ответа 200 OK
Учитывая указанную команду curl, вы должны ответить на ваш вопрос:
class HttpHandler(BaseHTTPRequestHandler):
def do_POST(self):
content_length = int(self.headers['Content-Length'])
file_content = self.rfile.read(content_length)
# Do what you wish with file_content
print file_content
# Respond with 200 OK
self.send_response(200)
Обратите внимание, что, используя -d @../some.file
в вашей команде curl, вы говорите: "Это файл ascii, oh и вычеркнуть новые строки и возвращает каретки", таким образом, могут быть различия между используемым вами файлом и данными вы получите запрос. Ваша команда curl не эмулирует загрузку файла формы html как запрос на отправку.