이상한 문제가 있습니다.파이썬의 요청으로 인코딩하기
나는 CGI 스크립트에 POST 요청의 일부로 사전을 전달하고있다 : 여기
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()
오늘 새벽이라고해서 누군가가 스택 오버플로에서 라이브러리를 선택했다고 경고했습니다. 내가 그들 말을 들어야 만했던 것처럼 보입니다. 그러나 나는 무엇이 잘못되었는지 궁금합니다.
'requests.post'와'conn.request'의 매개 변수는 실제로 경로입니까? 아니면 URL입니까? –
매개 변수는 경로입니다. –
매우 이상합니다. 내 컴퓨터에서 경로 ('requests.post ("/ tmp/CGI/cgi_script.py")')를 사용하면'MissingSchema : 잘못된 URL u '/ tmp/CGI/cgi_script.py'가 표시됩니다. 스키마 제공 '. –