Следуя примеру здесь: https://docs.microsoft.com/en-us/rest/api/azure/devops/git/items/get?view=azure-devops-rest-6.1
Я могу запросить организацию по разработке и получить такой ответ:
{
"count": 1,
"value": [
{
"objectId": "61a86fdaa79e5c6f5fb6e4026508489feb6ed92c",
"gitObjectType": "blob",
"commitId": "23d0bc5b128a10056dc68afece360d8a0fabb014",
"path": "/MyWebSite/MyWebSite/Views/Home/_Home.cshtml",
"url": "https://dev.azure.com/fabrikam/_apis/git/repositories/278d5cd2-584d-4b63-824a-2ba458937249/items/MyWebSite/MyWebSite/Views/Home/_Home.cshtml?versionType=Branch&versionOptions=None"
}
]
}
Как я могу использовать Python, я думаю, для загрузки этого URL-адреса? Файл должен быть XML-файлом. Я хочу прочитать (скачать) его прямо из Python.
Если я возьму url
, возвращенное выше, и вставлю его в еще один запрос GET
, я буду отправлен в цикле.
Я понял, что если я вставлю URL-адрес, который он мне дает, я смогу загрузить файл с помощью своего веб-браузера. Однако, когда я вставляю тот же URL-адрес в новый request
, я снова и снова получаю одни и те же метаданные, пытаясь:
response = requests.get(url=(url), headers=headers, stream=True)
response.text
response.content
response = requests.get(url=(url), headers=headers, stream=False)
response.text
response.content
Нет, даже если я вставлю url
в очередной GET-запрос, я получу больше URL-адресов.
Похоже, вы не меняете переменную url
, поэтому я ожидаю, что содержимое будет таким же?
Я меняю переменную, это просто иллюстрация отключения/включения потока как одной из возможных причин.
Глядя на документацию, которой вы поделились, кажется, что вам нужно установить для параметра download
значение true.
Я решил проблему, так как оба комментария и предыдущий ответ неверны и не приведут вас к правильному ответу для будущих посетителей.
Следуя приведенному здесь примеру, как было первоначально опубликовано, предполагается, что download=True
: https://docs.microsoft.com/en-us/rest/api/azure/devops/git/items/get?view=azure-devops-rest-6.1
Однако затем вам нужно запросить интересующий файл и установить этот флаг: &includeContent=true
, чтобы фактически получить содержимое файла из GIT devops.
Вот так:
https://dev.azure.com/fabrikam/_apis/git/repositories/278d5cd2-584d-4b63-824a-2ba458937249/items?scopePath=/MyWebSite/MyWebSite/Views/Home/_Home.cshtml&includeContent=true&api-version=6.1-preview.1
или вы отправите столько GET-запросов, сколько захотите, и не получите взамен ничего ценного.
Отвечает ли это на ваш вопрос? Как скачать файл по HTTP?