Запрос и ответ Python http.client json. Как?

У меня есть следующий код, который я бы хотел обновить до Python 3.x. Необходимые библиотеки изменились бы на http.client и json.

Кажется, я не понимаю, как это сделать. Не могли бы вы помочь?

import urllib2 import json data = {"text": "Hello world github/linguist#1 **cool**, and #1!"} json_data = json.dumps(data) req = urllib2.Request("https://api.github.com/markdown") result = urllib2.urlopen(req, json_data) print '\n'.join(result.readlines()) 

3 Solutions collect form web for “Запрос и ответ Python http.client json. Как?”

 import http.client import json connection = http.client.HTTPSConnection('api.github.com') headers = {'Content-type': 'application/json'} foo = {'text': 'Hello world github/linguist#1 **cool**, and #1!'} json_foo = json.dumps(foo) connection.request('POST', '/markdown', json_foo, headers) response = connection.getresponse() print(response.read().decode()) 

Я пройду через это. Сначала вам нужно создать TCP-соединение, которое вы будете использовать для связи с удаленным сервером.

 >>> connection = http.client.HTTPSConnection('api.github.com') 

http.client.HTTPSConnection()

Вам нужно будет указать заголовки запроса.

 >>> headers = {'Content-type': 'application/json'} 

В этом случае мы говорим, что тело запроса имеет тип application / json.

Затем мы будем генерировать json-данные из python dict ()

 >>> foo = {'text': 'Hello world github/linguist#1 **cool**, and #1!'} >>> json_foo = json.dumps(foo) 

Затем мы отправляем HTTP-запрос по HTTPS-соединению.

 >>> connection.request('POST', '/markdown', json_foo, headers) 

Получите ответ и прочитайте его.

 >>> response = connection.getresponse() >>> response.read() b'<p>Hello world github/linguist#1 <strong>cool</strong>, and #1!</p>' 

Чтобы сделать ваш код Python 3 совместимым, достаточно изменить операторы импорта и кодировать / декодировать данные, предполагая utf-8 всюду:

 import json from urllib.request import urlopen data = {"text": "Hello world github/linguist№1 **cool**, and #1!"} response = urlopen("https://api.github.com/markdown", json.dumps(data).encode()) print(response.read().decode()) 

См. Другой пример сообщения https .

 conn = http.client.HTTPSConnection('https://api.github.com/markdown') conn.request("GET", "/markdown") r1 = conn.getresponse() print r1.read() 
  • Python 3 IDE для обучения
  • Python3 AttributeError: объект 'list' не имеет атрибута 'clear'
  • Использование ввода / raw_input в python 2 и 3
  • Как работать с суррогатными парами в Python?
  • Создайте набор из списка, используя {}
  • MySQL-db lib для Python 3.x?
  • scikit-learn: ValueError: недостаточно значений для распаковки (ожидается 2, получено 1)
  • Python '==' неверно возвращает false
  • Вывод списка задач
  • Ошибка синтаксиса в библиотеке jinja 2
  • Python - печать словаря в виде горизонтальной таблицы с заголовками
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.