I'm also trying via the Python API and a simple Python script
$ docker run -u zap -p 8080:8080 -d -i owasp/zap2docker-stable zap.sh -daemon -host 0.0.0.0 -port 8080 -config api.disablekey=true
$ pip install python-owasp-zap-v2.4
$ $ python simple.py
Traceback (most recent call last):
File "simple.py", line 18, in <module>
scanid = zap.spider.scan(target)
File "/home/mipeter3/zap-automation/python/env/lib/python2.7/site-packages/zapv2/spider.py", line 189, in scan
return six.next(six.itervalues(self.zap._request(self.zap.base + 'spider/action/scan/', params)))
File "/home/mipeter3/zap-automation/python/env/lib/python2.7/site-packages/zapv2/__init__.py", line 157, in _request
data = self._request_api(url, get)
File "/home/mipeter3/zap-automation/python/env/lib/python2.7/site-packages/zapv2/__init__.py", line 147, in _request_api
return self.session.get(url, params=query, proxies=self.__proxies, verify=False)
File "/home/mipeter3/zap-automation/python/env/lib/python2.7/site-packages/requests/sessions.py", line 521, in get
return self.request('GET', url, **kwargs)
File "/home/mipeter3/zap-automation/python/env/lib/python2.7/site-packages/requests/sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "/home/mipeter3/zap-automation/python/env/lib/python2.7/site-packages/requests/sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "/home/mipeter3/zap-automation/python/env/lib/python2.7/site-packages/requests/adapters.py", line 490, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', BadStatusLine("''",))
And then it fails with an exception about bad status lines.
Here's the simple.py for reference:
$ cat simple.py
#!/usr/bin/env python
import time
from pprint import pprint
from zapv2 import ZAPv2
zap = ZAPv2()
# do stuff
print 'Accessing target %s' % target
# try have a unique enough session...
zap.urlopen(target)
# Give the sites tree a chance to get updated
time.sleep(2)
print 'Spidering target %s' % target
scanid = zap.spider.scan(target)