I kilka tutoriali, których jeszcze nie sprawdzałem, ale zostały mi polecone:
- http://pcottle.github.io/learnGitBranching/
- https://try.github.io/levels/1/challenges/1
- http://gitimmersion.com/index.html
ekstaza, geniusz, przebłysk, olśnienie, półprawdy, półśrodki, przemilczenia, zaćmienia, głupstwa, kłamstewka, oszustwa, hultajstwo, wyrachowanie, nieprawda, nieobiektywność, niepodważalna prawda, nierówność, nieomylność, słuszność, perfekcja, krnąbrność ... niegodziwość
#! /usr/bin/env python3
import urllib.parse
import urllib.request
def post1():
url = 'http://requestb.in/kcco1337'
post_data = urllib.parse.urlencode({'login': 'user1', 'password': 'hasło 1'})
binary_data = post_data.encode('utf-8')
req = urllib.request.Request(url, data=binary_data)
u = urllib.request.urlopen(req)
print(u.read())
Raw body odebrane przez requestb.in:login=user1&password=has%C5%82o+1Urllib zbiera sporo krytyki, jako nieodpowiadający naszym czasom i trudny w obsłudze (muszę się z tym troszkę zgodzić). Alternatywę, którą znalazłem jest biblioteka requests, której działania nie muszę nawet opisywać.
#! /usr/bin/env python3
import requests
def post2():
url = 'http://requestb.in/kcco1337'
r = requests.post(url, data={'login': 'user1', 'password': 'hasło 2'})
print(r.status_code)
print(r.content)
Jedyną rzeczą, której nie jestem pewny jest kodowanie, najwyraźniej jednak w tym przykładzie wszystko poszło ok. Odebrane raw body:password=has%C5%82o+2&login=user1