Python запрос на получение адаптеров подключения не найдено - PullRequest
0 голосов
/ 14 апреля 2020

можно ли сделать urlprase и передать его на запрос, как показано ниже? URL, который я передаю: https://server1:8089

url = urlparse(args.URL)

def rest():
    url = {
        'scheme': 'https',
        'host': url.netloc,
        'port': url.port if url.port else 8089,
        'path': '/services/search/distributed/peers',
        'http_auth': (user + ":" + password),
        'use_ssl': True,
        'verify_certs': True,
        'ca_certs': certifi.where()
    }
    headers = {"Content-Type": "application/json"}
    payload = {
        "name": "test",
        "remoteUsername": user,
        "remotePassword": password
    }
    try:
        re = requests.post(url, data=payload, headers=headers)
        print(re.text)
    except requests.exceptions.RequestException as e:
        print(e)
        exit(1)

Ошибка

No connection adapters were found for '{'scheme': 'https', 'host': 'server1', 'port': 8089, 'path': '/services/search/distributed/peers', 'http_auth': 'user:pass', 'use_ssl': True, 'verify_certs': True, 'ca_certs': 'C:\\Users\\User1\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\certifi\\cacert.pem'}'

Я не уверен, что это правильный способ передать urlparse для запроса, Я был в состоянии передать URL-адрес напрямую, без urlparse работает просто отлично. но я хочу сделать это с помощью urlparse

url = http://xxxx.com:8089/services/search/distributed/peers

Заранее спасибо.

1 Ответ

0 голосов
/ 26 апреля 2020

Библиотека python requests принимает url в простом формате string. Вы не можете передать ему dictionary отдельных компонентов URL.

...