如何读取八位格响应
我正在尝试使用Python向LinkedIn发布视频。
我能够使用卷曲命令发布视频。
在步骤2 curl命令中:
curl -v \
-H "Content-Type:application/octet-stream" \
--upload-file ~/Downloads/sample.mp4 \
"https://www.linkedin.com/dms-uploads/C5505AQH-oV1qvnFtKA/uploadedVideo?sau=aHR0cHM6Ly93d3cubGlua2VkaW4tZWkuY29tL2FtYnJ5L2FtYnJ5LXZpZGVvZWkvP3gtbGktYW1icnktZXA9QVFHVkdRS0FtS05oM2dBQUFYd19ObG1uZzVYcllXajEzZjIybXh4LW55SGVBclVKcE8y"
我们得到一个响应:
HTTP/1.1 200 OK
Content-Length: 0
Connection: keep-alive
etag: /ambry-videoei/signedId/AQHX97-zKFZrewAAAXx7Kf1h4pHEr_EVJ2_BGyigpJdmMfO9DreqqynKhTXcMMtKmFtM_JL07JFHXfzHoegWPUsBw9ofV7Z3KWfKRvB41FtIXq9pmvQtkDNrw_nPX4QjsDktxxzFq2gMlC9e3H4x8U_y0QQFQO0pMvtdwaBoFZ_eq_hGZRQCG-zTcYD0J_Nqsf1bApcZ_KGM3Zdc62eATjUTAV7zH4f--18-PLbhQMkKl4g9tjzgRVVv3jp3EPwRidBb7bk0RSI.bin
转换为Python时,是:
import requests
headers = {
'Content-Type': 'application/octet-stream',
}
params = {
'sau': 'aHR0cHM6Ly93d3cubGlua2VkaW4tZWkuY29tL2FtYnJ5L2FtYnJ5LXZpZGVvZWkvP3gtbGktYW1icnktZXA9QVFHVkdRS0FtS05oM2dBQUFYd19ObG1uZzVYcllXajEzZjIybXh4LW55SGVBclVKcE8y',
}
with open('~/Downloads/sample.mp4', 'rb') as f:
data = f.read()
response = requests.put(
'https://www.linkedin.com/dms-uploads/C5505AQH-oV1qvnFtKA/uploadedVideo',
params=params,
headers=headers,
data=data
)
response
<Response [200]>
我想要etag
来自响应>响应
继续执行进一步的步骤。因此,我尝试了:
data = json.loads(response.content)
当我print(reverse.content)
时,我得到了:
b ' '
我也尝试
print(response.json())
了此错误:
File "xxxxx/env/lib/python3.10/site-packages/requests/models.py", line 917, in json raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) requests.exceptions.JSONDecodeError: [Errno Expecting value] : 0
任何人都可以帮助我从该代码中尤其来自ETAG的响应。
I'm trying to post video to LinkedIn using Python.
I was able to post video using curl commands.
In step 2 curl command:
curl -v \
-H "Content-Type:application/octet-stream" \
--upload-file ~/Downloads/sample.mp4 \
"https://www.linkedin.com/dms-uploads/C5505AQH-oV1qvnFtKA/uploadedVideo?sau=aHR0cHM6Ly93d3cubGlua2VkaW4tZWkuY29tL2FtYnJ5L2FtYnJ5LXZpZGVvZWkvP3gtbGktYW1icnktZXA9QVFHVkdRS0FtS05oM2dBQUFYd19ObG1uZzVYcllXajEzZjIybXh4LW55SGVBclVKcE8y"
and we get a response:
HTTP/1.1 200 OK
Content-Length: 0
Connection: keep-alive
etag: /ambry-videoei/signedId/AQHX97-zKFZrewAAAXx7Kf1h4pHEr_EVJ2_BGyigpJdmMfO9DreqqynKhTXcMMtKmFtM_JL07JFHXfzHoegWPUsBw9ofV7Z3KWfKRvB41FtIXq9pmvQtkDNrw_nPX4QjsDktxxzFq2gMlC9e3H4x8U_y0QQFQO0pMvtdwaBoFZ_eq_hGZRQCG-zTcYD0J_Nqsf1bApcZ_KGM3Zdc62eATjUTAV7zH4f--18-PLbhQMkKl4g9tjzgRVVv3jp3EPwRidBb7bk0RSI.bin
When converted to Python, it is:
import requests
headers = {
'Content-Type': 'application/octet-stream',
}
params = {
'sau': 'aHR0cHM6Ly93d3cubGlua2VkaW4tZWkuY29tL2FtYnJ5L2FtYnJ5LXZpZGVvZWkvP3gtbGktYW1icnktZXA9QVFHVkdRS0FtS05oM2dBQUFYd19ObG1uZzVYcllXajEzZjIybXh4LW55SGVBclVKcE8y',
}
with open('~/Downloads/sample.mp4', 'rb') as f:
data = f.read()
response = requests.put(
'https://www.linkedin.com/dms-uploads/C5505AQH-oV1qvnFtKA/uploadedVideo',
params=params,
headers=headers,
data=data
)
response
<Response [200]>
I want etag
from response
to proceed to further steps. So I tried:
data = json.loads(response.content)
When I print(response.content)
, I get:
b ' '
I also tried
print(response.json())
And I got this error:
File "xxxxx/env/lib/python3.10/site-packages/requests/models.py", line 917, in json raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) requests.exceptions.JSONDecodeError: [Errno Expecting value] : 0
Can anyone help me in getting response from in particular etag from this code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
最后,经过深入研究后,能够找到我的问题的答案。我更多地检查了什么是ETAG,它是什么使用,发现它是标题部分的一部分,因此仅尝试了
响应。headers
,并且能够获得ETAG
并提取ETAG,我
现在尝试过我可以成功地将视频上传到LinkedIn。
Finally after some deep dive was able to find answer to my question. I checked more on what is ETag and what is it's use, found out that it is a part of headers section so just tried
response.headers
and was able to get ETag
And to extract ETag I tried
Now I'm able to successfully upload video to LinkedIn.