Загрузите двоичный файл изображения, используя linkedin. Create share api дает нулевой ответ, используя код python, но команда curl работает - PullRequest
1 голос
/ 10 апреля 2019

Команда curl ниже работает отлично, но преобразованная команда curl в код python не работает. Однако код Python возвращает код состояния 201, а response.text ничего не печатает.

К вашему сведению: я следую этой документации .

Вот рабочая команда Curl:

curl -i --upload-file "/home/abhay/download.jpeg" --header "Authorization: Bearer xxxxxxxxx" 'https://api.linkedin.com/mediaUpload/C5122AQE4GSagETyxQA/feedshare-uploadedImage/0?ca=vector_feedshare&cn=uploads&m=AQK_YGFfk_crEwAAAWoGPkMNETNZnhoeCKKmD_CKYeasF1NHooQ7pdeZWA&app=5969925&sync=0&v=beta&ut=1DL2-qd0JrroI1'

Преобразованный код Python

upload_url = 'https://api.linkedin.com/mediaUpload/C5122AQE4GSagETyxQA/feedshare-uploadedImage/0?ca=vector_feedshare&cn=uploads&m=AQK_YGFfk_crEwAAAWoGPkMNETNZnhoeCKKmD_CKYeasF1NHooQ7pdeZWA&app=5969925&sync=0&v=beta&ut=1DL2-qd0JrroI1'
headers = {
    'accept' : 'application/json',
    'X-Restli-Protocol-Version': '2.0.0',
    'Authorization': 'Bearer xxxxxxxxx',
    # 'Content-Type': 'multipart/form-data'
    'Content-Type': 'image/jpeg',
}

image = open("/home/abhay/download.jpeg" ,"rb")
files = {'images_file': image }

response = requests.post(upload_url, headers=headers, files=files)
print response.status_code
print response.text

Curl дает правильный ответ:

HTTP/2 201 
date: Wed Apr 10 07:59:03 UTC 2019
server: Play
set-cookie: lang=v=2&lang=en-us; Path=/; Domain=api.linkedin.com
x-ambry-creation-time: Wed Apr 10 07:59:03 UTC 2019
access-control-allow-origin: https://www.linkedin.com
content-length: 0
x-li-fabric: prod-lsg1
x-li-pop: prod-tmu1
x-li-proto: http/2
x-li-uuid: FPDYGfsNlBXg+OFSZisAAA==
set-cookie: lidc="b=SB83:g=115:u=5:i=1554883143:t=1554953528:s=AQEVXPybFdnyKyPqSWbf_ax997ap-22S"
x-li-route-key: "b=SB83:g=115:u=5:i=1554883143:t=1554953528:s=AQEVXPybFdnyKyPqSWbf_ax997ap-22S"

Код Python дает следующий ответ

201 (status code)
None (response.text)

Кто-нибудь может мне помочь, что мне не хватает в коде Python? Спасибо!

...