Пошел по странной проблеме.Кодирование с запросами в python
Я передаю словарь как часть запроса POST к CGI скрипт:
self.settings = {
'SubmitCommands': ['C:\Python27\python.exe path\my_script.py']
}
Вот мой код:
settings = self.settings
# Make web call to CGI script
user_agent = r'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = {'User-Agent' : user_agent, "Accept": "text/plain"}
response = requests.post(
"path\CGI\cgi_script.py",
headers=headers, data=settings)
А вот полученный отслеживающий:
Traceback (most recent call last):
File "path\CGI\cgi_script.py", line 119, in initi
alizeJob
self.submitCommands = eval(inputSubmitCommands)
File "<string>", line 1
C:\Python27\python.exe path\my_script.py
^
SyntaxError: invalid syntax
Однако, если я делаю это старомодным способом, я не получаю следы:
settings = self.settings
# Set and encode parameters
params = urllib.urlencode(settings)
# Make web call to CGI script
user_agent = r'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = {'User-Agent' : user_agent,
"Content-type": "application/x-www-form-urlencoded",
"Accept": "text/plain"}
conn = httplib.HTTPConnection(self.host)
conn.request("POST", "path/CGI/cgi_script.py", params, headers)
response = conn.getresponse()
Ранее сегодня кто-то предупреждал меня о переполнении стека для сбора библиотеки только потому, что она новая. Похоже, я должен был их слушать. Однако мне все еще интересно, что пошло не так.
Является ли параметр 'request.post' и' conn.request' фактическим путем? Или это URL? –
Параметр - это путь. –
Это очень странно. На моей машине, когда я пытаюсь использовать путь ('request.post ("/tmp/CGI/cgi_script.py ")'), я получаю 'MissingSchema: Invalid URL u '/ tmp/CGI/cgi_script.py': Нет схема поставляется'. –