2011-04-05 5 views
-2

여기에 몇 가지 스레드가 있다는 것을 알고 있지만 잘못하고있는 것을 찾을 수 없습니다. 이 erroring되는 코드입니다 :xml을 파이썬으로 강제로 다운로드하려면 어떻게해야합니까?

print 'Content-Type: text/xml \n' 
    print 'Content-Disposition:attachment;filename="test.qwc" \n' 
    print 'Content-Length:' + len(xml) 
    print xml 

는 XML 변수는 단순히 XML의 문자열입니다. xml은 브라우저에 인쇄 할 수 있기 때문에 괜찮습니다. 하지만 Content-Disposition과 Content-Length 라인을 추가하면 다음과 같은 에러가 발생합니다 :

XML Parsing Error: not well-formed 
    Location: http:/myurl/XMLqwc.py?franchiseid=1 
    Line Number 1, Column 31: 
    Content-Disposition:attachment;filename="test.qwc" 
    ------------------------------^ 

아이디어가 있습니까? 도움에 미리 감사드립니다!

+1

오류가 발생하는 "it"은 무엇입니까? – drysdam

+0

제목이나 태그의 질문과 관련된 유일한 단어는 "python"입니다. –

답변

2

헤더와 페이로드는 항상 빈 줄로 구분해야합니다. content-length 헤더 행은 줄 바꿈을 포함하지 않습니다 ... 또한 문자열에 정수 (len() ..)를 추가하면 이상하게 보입니다.

4
  1. "string" + len(whatever)이 예외로 보장되므로 XML을 제공하는 데 사용 된 코드 일 수 없습니다.
  2. 각 머리글 행에 하나가 아닌 두 개의 줄 바꿈 문자가 추가되므로 머리글에 첫 줄만 포함됩니다. 머리글과 본문은 두 개의 줄 바꿈으로 구분되며 두 번째 줄은 첫 번째 머리글 뒤에옵니다. 나머지는 XML로 간다.
  3. 간단한 텍스트 형식 이외에는 print을 사용하지 않을 것입니다. HTTP는 간단하지 않으므로 (3 참조) 대신 sys.stdout.write()을 사용해야합니다.
  4. 수십 개의 web frameworks for Python이 있습니다. 대신 그들을 고려해야합니다. 그들 중 일부는 Werkzeug와 web.py와 같이 매우 간단합니다.
관련 문제