как перейти в путь к папке в urllib остальные пост звонка - PullRequest
0 голосов
/ 15 мая 2018

почтовый звонок, как показано ниже:

http://localhost:8086/service/records/bulkimport?overwrite=true&classroom=grade1&dir=C:\Users\temp\classroomRecords\grade1

попытался реализовать в python3.6, используя urllib, как показано ниже:

from urllib.request import urlopen, URLError, Request
from urllib.parse import urlencode

loadRecordsRestCall = 'http://localhost:8086/service/records/bulkimport'
values = {'overwrite' : 'true',
      'classroom' :  'grade1',
      'dir' : 'C:\\Users\\temp\\classroomRecords\\grade1'}
data = urlencode(values)
data = data.encode('ascii')
req = Request(self.loadRecordsRestCall, data)
with urlopen(req) as loadRecordsRestCall:
    print("Status: %s" % loadRecordsResponse.getcode()) 
    print("Response: %s" % loadRecordsResponse.read()) 

Но каждый раз, когда он показывал код ошибки 500, проводил онлайн-исследования, не хотел использовать внешнюю библиотеку, если просто использовал urllib, как заставить ее работать.

Ниже приведено сообщение об ошибке, кто-нибудь знает, что здесь не так: Traceback (последний вызов был последним): Файл "", строка 1, в Файл "C: \ Program Files \ Python36 \ lib \ urllib \ request.py", строка 223, в урлопене возврат opener.open (URL, данные, время ожидания) Файл "C: \ Program Files \ Python36 \ lib \ urllib \ request.py", строка 532, в открытом виде ответ = мет (req, ответ) Файл "C: \ Program Files \ Python36 \ lib \ urllib \ request.py", строка 642, в
http_response «http», запрос, ответ, код, сообщение, hdrs) Файл "C: \ Program Files \ Python36 \ lib \ urllib \ request.py", строка 570, по ошибке вернуть self._call_chain (* аргументы) Файл "C: \ Program Files \ Python36 \ lib \ urllib \ request.py", строка 504, в _ call_chain результат = func (* аргументы) Файл "C: \ Program Files \ Python36 \ lib \ urllib \ request.py", строка 650, в http_error_default поднять HTTPError (req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: Ошибка HTTP 500: запрос не выполнен.

1 Ответ

0 голосов
/ 23 мая 2018

Это решено, и оказалось, что для API на стороне службы требуется параметр запроса. поэтому я использовал форматированную строку URL, чтобы сделать вызов.

...