nm17 / netschoolapi

Полностью асинхронный API клиент для "Сетевой Город. Образование" написанный на Python
https://netschoolapi.readthedocs.io/
MIT License
88 stars 21 forks source link

Какие-то проблемы с запросами. #30

Closed Taukurade closed 3 years ago

Taukurade commented 3 years ago
import asyncio

from netschoolapi import NetSchoolAPI

async def main():
    async with NetSchoolAPI(
            'https://sgo.edu-74.ru/',  # Сайт «Сетевого города»
            '',  # Логин
            '',  # Пароль от дневника
            # Адрес вашей школы. Вы видите его когда входите на сайт СГО
            # Указывайте всё как на сайте, буква к букве, это важно!
            (
                'Челябинская обл',  # Область
                'Городской округ Златоуст',  # Округ или район
                'Златоуст, г.', # Населённый пункт.

                'Общеобразовательная',  # Это тоже
                'МАОУ СОШ № 45',  # Образовательная организация
            ),
    ) as api:
        print(await api.get_diary())
        # Твой код живёт здесь

event_loop = asyncio.get_event_loop()
event_loop.run_until_complete(main())

После выполнения получаю это:

C:\Users\Main\Desktop\myWS\sgo>python main.py
Traceback (most recent call last):
  File "main.py", line 27, in <module>
    event_loop.run_until_complete(main())
  File "C:\Program Files\Python38\lib\asyncio\base_events.py", line 616, in run_until_complete
    return future.result()
  File "main.py", line 7, in main
    async with NetSchoolAPI(
  File "C:\Users\Main\AppData\Roaming\Python\Python38\site-packages\netschoolapi\client.py", line 143, in __aenter__
    await self._login()
  File "C:\Users\Main\AppData\Roaming\Python\Python38\site-packages\netschoolapi\client.py", line 99, in _login
    login_data = (await client.post("webapi/auth/getdata")).json()
  File "C:\Users\Main\AppData\Roaming\Python\Python38\site-packages\httpx\_models.py", line 1113, in json
    return jsonlib.loads(self.content.decode(encoding), **kwargs)
  File "C:\Program Files\Python38\lib\json\__init__.py", line 357, in loads
    return _default_decoder.decode(s)
  File "C:\Program Files\Python38\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Program Files\Python38\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

версия python:

python --version
Python 3.8.6
nm17 commented 3 years ago

https://sgo.edu-74.ru/webapi/auth/getdata выдаёт 400 если отсутствует NSSESSIONID (он получается в /webapi/logindata) @igorlanov

nm17 commented 3 years ago

Ещё нужен Referer: https://sgo.edu-74.ru

igorlanov commented 3 years ago

Исправлено в #32