You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

通过Unsplash API按ID获取指定图片失败的技术求助

问题分析与解决方案

嘿,我一眼就发现你遇到的问题啦!核心原因是你对Unsplash API里路径参数的使用方式理解错了~

错误点拆解

你构造的URL是:

https://api.unsplash.com/photos/:id?id=nDV6ahWLvEg&client_id=123123123123

这里的:id是API文档里的路径占位符,它的作用是告诉你「这里需要替换成实际的图片ID」,而不是让你把:id保留在URL里,再用?id=xxx的查询参数传值。Unsplash的服务器会把/photos/:id当成一个固定路径,自然找不到对应的资源,所以返回404。

正确的请求方式

你需要直接把:id替换成实际的图片IDnDV6ahWLvEg,然后只保留client_id作为查询参数。正确的URL应该是:

https://api.unsplash.com/photos/nDV6ahWLvEg?client_id=123123123123

验证方法(Python requests示例)

用你熟悉的requests库测试的话,代码应该是这样的:

import requests

# 替换成你的真实access key
ACCESS_KEY = "123123123123"
PHOTO_ID = "nDV6ahWLvEg"

# 直接把图片ID拼到路径里
url = f"https://api.unsplash.com/photos/{PHOTO_ID}"
# 只传client_id作为查询参数
params = {"client_id": ACCESS_KEY}

response = requests.get(url, params=params)
if response.status_code == 200:
    photo_info = response.json()
    print(f"成功获取图片信息:{photo_info['alt_description']}")
else:
    print(f"请求失败:状态码{response.status_code},响应内容:{response.text}")

同理解决Collections端点的404问题

Collections相关的端点(比如/collections/:id)也是一样的逻辑,把:id替换成实际的收藏夹ID即可,不要用查询参数传递ID。

总结

API文档里用:param格式标记的都是路径参数,需要直接替换成对应的值放到URL路径中;而client_id这类是查询参数,才需要用?key=value的方式传递。

内容的提问来源于stack exchange,提问作者vii

火山引擎 最新活动