как я могу исправить эту ошибку в python коде - PullRequest
0 голосов
/ 17 января 2020

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

import requests
import json
import datetime


headers = {
    "Accept": "application/json, text/plain, */*",
    "Accept-Encoding": "gzip, deflate",
    "Accept-Language": "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7",
    "Connection": "keep-alive",
    "Content-Length": "50",
    "Content-Type": "application/json;charset=UTF-8",
    "Cookie": "_ga=GA1.2.290443894.1570500092; _gid=GA1.2.963761342.1579153496; JSESSIONID=A4B3165F23FBEA34B4BBE429D00F12DF",
    "Host": "marke.ai",
    "Origin": "http://marke",
    "Referer": "http://marke/event2/login",
    "User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Mobile Safari/537.36",
}
url = "http://mark/api/users/login"
va = {"username": "seg", "password": "egkegn"}
c = requests.post(url, data=json.dumps(va), headers=headers)
if c.status_code != 200:
    print("error")

Это работает очень хорошо в моем windows локальном с Pycharm

, но когда я запустил код в Linux, я получил такую ​​ошибку

requests.exceptions.ProxyError: HTTPConnectionPool(host='marke', port=80):
Max retries exceeded with url: http://marke.ai/api/users/login (
  Caused by ProxyError('Cannot connect to proxy.', 
    NewConnectionError('<urllib3.connection.HTTPConnection>: Failed to establish a new connection: [Errno 110] Connection timed out',)
  )
)

Итак ... в чем проблема, научите меня также, если вы знаете решение, научите меня !!

спасибо

Ответы [ 3 ]

1 голос
/ 17 января 2020

По вашей ошибке кажется, что вы находитесь за прокси.

Таким образом, вы должны указать параметры прокси-сервера при построении запроса.

Создайте прокси-сервер в соответствии с этим форматом

proxies = {
    "http": "http://my_proxy:my_port",
    "https": "https://my_proxy:my_port"
}

Если вы не знаете свой параметры прокси, затем вы можете получить их, используя urllib модуль:

import urllib
proxies = urllib.request.getproxies()
0 голосов
/ 17 января 2020

Изменение ответа @Arkenys. Пожалуйста, попробуйте это.

import urllib.request
proxies = urllib.request.getproxies()

# all other things

c = requests.post(url, data=json.dumps(va), headers=headers, proxies=proxies)
0 голосов
/ 17 января 2020

На этом хосте Linux настроен прокси-сервер, и он не может подключиться к нему.

Судя по документации , у вас может быть переменная окружения PROXY_URL комплект.

...