我在firebase中存储了一些图片,firebase给了我一个下载图片的网址:
https://firebasestorage.googleapis.com/v0/b/afel-orders-mirror.appspot.com/o/stock_pictures%2F1000%2Falicate%20cortante%20electronica.jpg?alt=media&token=f2d54a3b-0526-4b9a-99ff-4c38c468757c
下载图片的权限已全部打开
我想通过MercadoLibre(api.mercadolibre.com)的另一台服务器上的rest api上传图片
上传我必须发送图片的图片
{"source":"https://firebasestorage.googleapis.com/v0/b/afel-orders-mirror.appspot.com/o/stock_pictures%2F1000%2Falicate%20cortante%20electronica.jpg?alt=media&token=f2d54a3b-0526-4b9a-99ff-4c38c468757c"}
通过POST
问题是来自mercadolibre的服务器对url进行编码,并破坏了网址,服务器尝试从此网址下载图像
https://firebasestorage.googleapis.com/v0/b/afel-orders-mirror.appspot.com/o/stock_pictures%252F1000%252Falicate%2520cortante%2520electronica.jpg%3Falt%3Dmedia%26token%3Df2d54a3b-0526-4b9a-99ff-4c38c468757c
注意%25
此链接显示以下错误
{
"error": {
"code": 404,
"message": "Not Found. Could not get object"
}
}
所以在python中我试图解码第一个网址
https://firebasestorage.googleapis.com/v0/b/afel-orders-mirror.appspot.com/o/stock_pictures/1000/alicate cortante electronica.jpg?alt=media&token=f2d54a3b-0526-4b9a-99ff-4c38c468757c
(此链接出现以下错误)
{
"error": {
"code": 400,
"message": "Invalid HTTP method/URL pair."
}
}
认为当mercadolibre服务器对url进行编码时我会得到原始文件,但问题是只有“/ o /”之后的“/”应该转换为%2F
我无法控制url编码(这在mercadolibre服务器中是自动的),我怎样才能发送一个url,在编码后我得到一个有效格式的原始网址?
感谢。
答案 0 :(得分:0)
作为一种解决方法,我使用google api goo.gl缩短了网址 这适用于mercadolibre,脸书或任何其他需要网址上传图片的API。
问候。