Tutorial 8: REST¶
This sections shows several examples how to use REST client.
API¶
Module hydratk.lib.network.rest.client
Supported protocols:
- HTTP/HTTPS
Methods:
send_request: send request to server
get_header: get response header
Note
API uses HydraTK core functionalities so it must be running.
Examples¶
# import library import hydratk.lib.network.rest.client as rest # initialize client client = rest.RESTClient() # send HTTP GET request # returns status 200 and HTML body status, body = client.send_request('google.com') # send HTTP GET request with URL param status, body = client.send_request('http://metalopolis.net/art_downtown.asp', params={'id2': '7871'}) # send HTTP POST request to submit form status, body = client.send_request('http://metalopolis.net/fastsearch.asp', method='POST', params={'verb': 'motorhead', 'submit': '>>>'}) # send HTTPS GET request with authentication Basic, Digest, NTLM, certificate status, body = client.send_request('https://trac.hydratk.org/hydratk/login', user='aaa', passw='bbb', auth='Basic') status, body = client.send_request('https://trac.hydratk.org/hydratk/login', user='aaa', passw='bbb', auth='Digest') status, body = client.send_request('https://trac.hydratk.org/hydratk/login', user='aaa', passw='bbb', auth='NTLM') status, body = client.send_request('https://trac.hydratk.org/hydratk/login', cert='/home/lynus/cert.pem') status, body = client.send_request('https://trac.hydratk.org/hydratk/login', cert=('/home/lynus/cert.pem', '/home/lynus/key.pem')) # send HTTP POST request with JSON body data = r'{"userId": 1, "id": 101, "title": "bowman", "body": "bowman"}' status, body = client.send_request('http://jsonplaceholder.typicode.com/posts', method='POST', body=data, content_type='json') # send HTTP GET request to receive JSON body status, body = client.send_request('http://jsonplaceholder.typicode.com/posts/100', method='GET') # send HTTP GET request to receive XML body status, body = client.send_request('http://httpbin.org/xml', method='GET') # send request with cookies status, body = client.send_request('http://test.com', cookies={'name': 'value'}) # send request with proxy status, body = client.send_requst('http://test.com', proxies={'http': 'http://10.10.1.10:3128'}) # download file url = 'https://pypi.python.org/packages/82/a3/ef4eb2dc3fcaaa5346d51548fcc3c8f0f4e1769d8ad4052430cd8ef1a1af/hydratk-ext-datagen-0.1.0.tar.gz#md5=5695263be75afd60473374e17c0f5785' file = 'hydratk-ext-datagen-0.1.0.tar.gz' status, body = client.send_request(url, method='GET', file=file) # upload file url = 'http://www.filedropper.com/' status, body = client.send_request(url, method='POST', file='test.txt')