0

이 cURL 요청을 Python 요청 코드로 변환하려고합니다. here - 요청의 자세한 내용은는 HTTP 요청 메시지를 포함하는 세일즈 포스의 문서를 확인 들어파일을 REST API에 업로드 할 수 없습니다.

컬 콘텐츠

curl -H "X-PrettyPrint: 1" 
    -F 'json={"title":"PandaTest"};type=application/json' 
    -F "[email protected];type=application/octet-stream" 
    -X POST https://cs31.salesforce.com/services/data/v39.0/connect/files/users/me 
    -H 'Authorization: 00Dp000000.....CqqU0.S_5r' --insecure 

입니다. 섹션 Upload a file to the Files home을 검색하십시오.

되지 내가 작성한 무엇의

파이썬 카운터 부분은 내 요청이 성공적으로 전송됩니다

import requests 

files = { 
      "fileData" : open("rename.py", "rb"), 
      "json" : '{"title":"PandaTest"}' 
     } 

headers = { 
       'Authorization': 'OAuth 00Dp00000000u....n3ZGuoZK2wYJRCqqU0.S_5r', 
       "Content-Disposition": "form-data 'fileData'" 
      } 

r = requests.post('https://cs31.salesforce.com/services/data/v39.0/connect/files/users/me/', 
        data=files, headers=headers) 
data = json.loads(r.text) 

print data 

하지만 난 오류 Missing expected "fileData" binary parameter .I이 내가 보내려고 요청을 느끼고있다 얻을 올바르게 형성되었다. 정확히 내가 어디로 잘못 갔습니까?

나는 2 -F을 cURL 요청에 올바르게 처리하지 못한다고 생각합니다.

+0

은 파일의 실제 데이터 또는 파일 이름으로 간주되는 fileData입니까? – MattCorr

답변

0

이 줄 :

"fileData" : open("rename.py", "rb"), 

이 파일을 열 때 반환되는 객체에 "파일 이름을"설정입니다. 이 파일의 실제 내용으로 "파일 이름"하고 싶은 경우,이에 줄을 변경 :
"fileData" : open("rename.py", "rb").read(), 

파일의 모든 바이트를 읽고 그들에게 "파일 이름"으로 설정 것이다.

+0

나는 그것을 시험해 보았다. 그러나 그것은 도움이되지 않았습니다. – JRodDynamite

관련 문제