Использование токена для авторизации по VSTS API, но status.code = 203 - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь использовать API VSTS 5.0, но я получаю 203, когда пытаюсь использовать токен с python.

headers = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
    'X-Requested-With':'XMLHttpRequest',
    'Authorization': b'Basic '+ base64.b64encode(personal_access_token.encode('utf-8')),
    'content-type': 'application/json',}

def get_page_list():
    url = 'https://{account}.visualstudio.com/DefaultCollection/_apis/projects'
    try:
        response = requests.get(url, headers=headers, verify = False)
        print (response.status_code)
        if response.status_code == 200:
            return response.json()
    except requests.ConnectionError as e:
        print('Error*****', e.args)

if __name__ == '__main__':
    json = get_page_list()
    print(json)

И это вернется к этому: 203 Нет

Я действительно не могу понять, что происходит не так.

Ответы [ 2 ]

0 голосов
/ 13 июля 2018

Наконец, мы находим способ получить авторизацию:

    try:
    response = requests.get(url1, headers=headers, verify = False,auth = (MyToken,''))
    if response.status_code == 200:
        return response.json()
except requests.ConnectionError as e:
    print('Error', e.args)

Спасибо

0 голосов
/ 03 июля 2018

Убедитесь, что ваш PAT действителен, а используемая версия API должна быть 4.0. Вы также можете попробовать фрагмент кода в этом случае: Аутентификация в VisualStudioOnline REST API с токеном личного доступа с использованием Python 3.6 :

import json
import base64
import urllib.request

personal_access_token = ":xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

headers = {}
headers['Content-type'] = "application/json"
headers['Authorization'] = b'Basic ' + 
base64.b64encode(personal_access_token.encode('utf-8'))

instance = "mycompany.visualstudio.com"
project = "MyProject"
repository ="MyRepository"
pullrequest = "3468"
api_version = "3.0"

repositories_url = ("https://%s/DefaultCollection/%s/_apis/projects?
api-version=%s" % (instance, project, api_version))
print(repositories_url)

request = urllib.request.Request(repositories_url, headers=headers)
opener = urllib.request.build_opener()
response = opener.open(request)
print(response.read())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...