안녕하세요 여러분 모두가 사람들을 사랑 했으므로 또 하나 있습니다. Django, 요청 및 Google Checkout을 사용하고 있습니다. 나는 구글 체크 아웃 권한에 XML을 보낼 시점에있다. 모두 예외는 아닙니다. 요청 라이브러리를 사용하여 POST에서 원하지 않는 일부 컨텐츠를 얻고 있습니다. 설명하겠습니다. 그래서 Google은 정확한 XML 파일을 원합니다. 스키마에서 데이터 구조를 만들기 위해 달콤한 라이브러리를 사용하고 있습니다. 그래서 내 XML이 정확합니다. 요청은 Google로 전송합니다.Python 요청 라이브러리 사용
--178.32.28.118.55290.2265475.1333156904.984.1
Content-Disposition: form-data; name="this.xml"; filename="../xml/this.xml"
Content-Type: application/xml
<?xml version="1.0" ?>
<checkout-shopping-cart xmlns='http://checkout.google.com/schema/2'>
<shopping-cart>
<item>
<digital-content>
<url>/site_media/digitalGoods/Resume.html.pdf</url>
<description>None Yet</description>
<display-disposition>OPTIMISTIC</display-disposition>
</digital-content>
<item-name>Fire Safety Part 1</item-name>
<item-description><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
</item-description>
<unit-price currency="USD">1.500000e+01</unit-price>
<quantity>1</quantity>
<merchant-item-id>1</merchant-item-id>
</item>
</shopping-cart>
<checkout-flow-support>
<merchant-checkout-flow-support/>
</checkout-flow-support>
</checkout-shopping-cart>
--178.32.28.118.55290.2265475.1333156904.984.1--
내가 생각하는 문제는 하나의 문서처럼 요청이 그 숫자와 그 헤더를 XML 위에 놓는 것입니다. 또한 xml 뒤에 직접 숫자를 쓰고 있습니다. 내 Google 통합 콘솔에서 오류가 발생하기 때문에 이것이 문제라고 생각합니다. 이를 해제 할 수있는 방법이 있나요 내가 요청 코드를 내 자신, 또는 무엇을 난도질해야합니까 :
Error parsing XML; message from parser is: Content is not allowed in prolog.
그래서 제 질문입니다. 여기 내가 requets
문제는 당신이 XML뿐만 아니라 구문 분석하려고하는 것 같다#....other code and vars above
sendfile = {'this.xml':open('../xml/this.xml', 'r')}#the file
headers={'Authorization':("Basic %s" % auth),#google specific headers
'Content-Type':'application/xml; charset=UTF-8',
'Accept':'application/xml; charset=UTF-8'}
#send POST
r = requests.post(diagnose_turl, files=sendfile,headers=headers, verify=False)
당신은 또한 당신의 요청을 제출하는 방법의 예를 포함해야한다 : 어쨌든 헤더를 받고있는 경우
는 파서에 공급하기 전에 첫 번째 빈 라인 (\r\n\r\n
) 전에 모든 것을 제거하기 – jdi