2012-04-08 1 views
2

토글 API를 사용하려고합니다.REQUESTS 패키지로 파이썬 요청을 게시하는 방법은 무엇입니까?

나는 내 GET을 수행하는 데 Urllib2 대신 요청을 사용합니다. 하지만 나는 붙어있다.

payload = { 
    "project":{ 
     "name":"Another Project", 
     "billable":False, 
     "workspace":{ 
      "Name":"jorrebor's workspace", 
      "id":213272 
     }, 
     "automatically_calculate_estimated_workhours":False 
    } 
} 

url = "https://www.toggl.com/api/v6/projects.json" 
r = requests.post(url, data=json.dumps(payload), auth=HTTPBasicAuth('[email protected]', 'mypassword')) 

인증은 괜찮지 만 페이로드 형식은 아닐 수 있습니다.

같은 매개 변수를 사용하여 컬 명령

curl -v -u heremytoken:api_token -H "Content-type: application/json" -d "{\"project\":{\"billable\":true,\"workspace\":{\"id\":213272},\"name\":\"Another project\",\"automatically_calculate_estimated_workhours\":false}}" -X POST https://www.toggl.com/api/v6/projects.json 

는 잘 작동을한다.

페이로드가 잘못되었습니다. 응답은 다음과 같습니다. [ "이름을 공백으로 둘 수 없습니다.", "작업 영역을 비워 둘 수 없습니다"]

인증이 작동하지만 토글은 내 json 객체를 읽을 수 없습니다.

답변

2

헤더를 기본 형식이 아닌 JSON 응용 프로그램으로 설정하고 파이썬 dict 대신 JSON 개체를 보내야합니다. 여기에서 확인하십시오 :

payload = {"project":{"name":"Another Project", 
        "billable":False, 
        "workspace":{"Name":"jorrebor's workspace", 
            "id":213272}, 
        "automatically_calculate_estimated_workhours":False 
         } } 

parameters_json = json.dumps(payload) 
headers = {'Content-Type': 'application/json') 
r = client.post(url, data=parameters_json, headers=headers) 

이 페이지는 json 객체를 잘 읽어야합니다.

관련 문제