2012-02-21 7 views
2

요청 모듈을 사용하여 put을 보내는 데 문제가 있습니다. 성공적으로 할 수 있었고 Chrome 용 고급 휴식 클라이언트를 사용하여 페이로드가 올바른지 확인했습니다. 그러나 잘못된 요청을 보내는 일반적인 오류가 나타납니다. ,Python Requests Module 문제 제기

import requests 
payload = {'payload': '<request>some request xml</request>'} 
headers = {'content-type': 'application/xml'} 

r = requests.put('https://the.url', data=payload, auth=HTTPBasicAuth('user', 'password'), headers=headers) 

나는 100 %는 XML, URL을 알고, 자격 증명이 올바른지 : I는 웹 서비스 호출에 새로운 오전 나는 내가 무엇을하고 있는가하는 것은 완전히 잘못된 것입니다 있는지 확실하지 않습니다 그러나 이것은 내가 시도하고있는 무슨이다 그런데 왜 위의 일을하지 않습니까? 내가 생각할 수있는 유일한 점은 페이로드의 핵심은 뭔가 구체적 일 필요가 있지만 그것이 맞는지 또는 어떻게해야 할지를 판단하는 방법이 확실하지 않다는 것입니다 ...

응답은 다음과 같습니다. - 'HTTP 상태 400 잘못된 요청'

답변

2

Quick Start Guide에 더 파고 후 나는 정보의 TID 비트를 발견

이 형성 인코딩되지 않은 데이터를 전송하려면 많은 시간이있다

. dict 대신 문자열을 전달하면 해당 데이터가 직접 게시됩니다.

나는 원래 이것을 시도했지만 명백하게 나는 내가 dict을 전달할 필요가 있다고 지적한 오류가 있었기 때문에 오타가있었습니다.

상관없이 사전 대신 직선 XML을 전달하면 문제가 해결됩니다.