Запрос и ответ 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 нуждается в переносе dict.items со списком ()
  • NLTK Наиболее распространенный синоним (Wordnet) для каждого слова
  • Регулярное выражение для возврата текста между скобками
  • Как создать сводную таблицу на чрезвычайно больших фреймах данных в Pandas
  • Установка NLTK со Стэнфордским НЛП (как StanfordNERTagger, так и StanfordPOSTagger) для испанского
  • Элементные операции над кортежами в Python
  • Несколько циклов с асинхронным
  • Не удалось найти vcvarsall.bat с помощью Python 3.3 в Windows 8
  • Python - лучший язык программирования в мире.