Как получить данные из команды curl -d с помощью Python, используя BaseHTPPRequestHandler - PullRequest
1 голос
/ 06 марта 2020

Прежде всего, я должен отметить, что я новичок в остальных API и python, это моя первая попытка. Я хочу использовать только стандартную библиотеку.

. Попробуйте использовать эту команду терминала curl на моем python сервере.

curl -d "id=23&answer=Rad Mobile" -X POST http://localhost:8000/answer

Мой код сервера такой. Чтобы получить URL приходящего почтового запроса. Функции в классе RequestHandler (BaseHTTPRequestHandler):

def do_POST(self):
        url = urlparse(self.path)
        if url.path == "/answer":
            return self.answer_q(parse_qs(url.query))
        self.send_response(404)
        self.end_headers()
        self.wfile.write(b'Not Found \n')

для понимания ответа




def answer_q(self, query):

        global correct_a,index
        isCorrect = False

        if  "answer" in query:
            if query["answer"] == str.encode(json.dumps(data["results"][index]["correct_answer"])) :
                isCorrect = True
                correct_a += 1
        self.send_response(200)
        self.end_headers()
        self.wfile.write(json.dumps(query).encode())
       #self.wfile.write(json.dumps(data["results"][index]["correct_answer"]).encode())
87 line self.wfile.write(json.dumps(self.update_js(query['id'],isCorrect),indent = 2).encode())
        index=index+1

, но вы получаете ошибку

Файл "serv.py", строка 87, в answer_q self.wfile.write (json .dumps (self.update_ js (запрос ['id'], isCorrect), отступ = 2) .encode ()) KeyError: 'id'

but with this form it works.

curl -X POST "http://localhost: 8000 / answer? Id = 23 & answer = Rad_Mobile "

Так что я предполагаю, что я не могу прочитать строку в начале завитка с помощью этой команды curl -d "" -X POST. Как можно поймать идентификатор и ответить. Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...