如何读取八位格响应

发布于 2025-02-10 19:26:00 字数 2135 浏览 1 评论 0原文

我正在尝试使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

洒一地阳光 2025-02-17 19:26:00

最后,经过深入研究后,能够找到我的问题的答案。我更多地检查了什么是ETAG,它是什么使用,发现它是标题部分的一部分,因此仅尝试了

响应。headers

,并且能够获得ETAG

并提取ETAG,我

    etag = respHeaders['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

    etag = respHeaders['ETag']

Now I'm able to successfully upload video to LinkedIn.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文