# requests er et programbibliotek for http-kall
import requests
# variabler i Python har ikke noe nøkkelord som var, let- eller const-foran
url = ('https://openwms.statkart.no/skwms1/wms.topo4'
+ '?VERSION=1.3.0'
+ '&REQUEST=GetMap'
+ '&CRS=EPSG:25832'
+ '&BBOX=592000,6741000,652000,6801000'
+ '&WIDTH=600'
+ '&HEIGHT=600'
+ '&LAYERS=topo4_WMS'
+ '&FORMAT=image/png'
+ '&STYLES=default'
)
# requests.get() returnerer et response-objekt
resp = requests.get(url)
print(type(resp))
<class 'requests.models.Response'>
# Med dir()-funksjonen kan vi undersøke innholdet i resp-objektet
# Noen av innholdselementene har navn som begynnner med __ (double underscore - kalt "dunder")
# funksjonen vdir utelater disse, men returnerer resten
# funksjonen lager ei Python Liste ved hjelp av "list comprehension"
def vdir(obj):
return [x for x in dir(obj) if not x.startswith('__')]
vdir(resp)
['_content', '_content_consumed', '_next', 'apparent_encoding', 'close', 'connection', 'content', 'cookies', 'elapsed', 'encoding', 'headers', 'history', 'is_permanent_redirect', 'is_redirect', 'iter_content', 'iter_lines', 'json', 'links', 'next', 'ok', 'raise_for_status', 'raw', 'reason', 'request', 'status_code', 'text', 'url']
print(resp.request)
print(resp.status_code)
print(resp.ok)
# print(resp.content) # Gir utskrift av denne typen: b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x02X\x00\x00\x02X\x08\x02\x00\x00\
<PreparedRequest [GET]> 200 True
# resp.headers er et Python dictionary som består av en parvis opplisting av nøkkelverdier og dataverdier
# Dette pakkes ut her ved hjelp av "dictionary comprehension"
{key:value for (key,value) in resp.headers.items()}
{'Server': 'nginx/1.20.1', 'Date': 'Wed, 27 Oct 2021 06:34:31 GMT', 'Content-Type': 'image/png', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Set-Cookie': 'JSESSIONID=83F1D5AE32591CA4FF4601AB88AC08CE; Path=/skwms1; Secure; HttpOnly', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS', 'Access-Control-Allow-Headers': 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'}
# innholdet i resp.content skrives til fil
if resp.status_code == 200:
with open("innlandet.png", 'wb') as f:
f.write(resp.content)