在第十四章,应用编程接口,其中在最后一节中,使用HTTPie测试web服务。
在这节遇到的问题:
直接按照书上执行匿名用户的请求命令, 就会直接抛出以下的错误,应该是链接不上的问题,请求失败,其他测试代码页一样抛出同样错误。然而不知道问题出在哪,一头雾水,去看看网上又有没解决方法,并没有找到,不过有人跟我遇到同样的问题也没有解决。
(venv) λ http --json --auth : GET http://127.0.0.1:5000/api/v1.0/posts/
http: error: ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=5000): Max retries exceeded with url: /api/v1.0/posts/ (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x03DB73D0>: Failed to establish a new connection: [Errno 10061] ',)) while doing GET request to URL: http://127.0.0.1:5000/api/v1.0/posts/
解决过程:
折腾了几个小时,查资料都没找出根源。无奈只好硬着头皮自力更生,自己一步一步看着能不能找出点问题来。
试着先运行启动服务器再看看:
D:\web_develop\flasky-yfw (master)
(venv) λ python manage.py runserver
* Restarting with stat
* Debugger is active!
* Debugger pin code: 194-727-637
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
没问题~
直接在浏览器中运行一下api的url看看:
请求没问题~,当然这里省略了一些,因为这里运行的时候也会有bug,代码问题,拼写,定义,导入之类的小问题。这些bug都很容易看出来,修正过程就不贴出来了。
这里想了一下,为什么会这样?
会不会是服务器没启动,不能连接上?
所以试试,开两个cmd界面:一个用于启动服务器,另一个用于执行测试代码。
果然成功了~~非常激动,这里也省略了调试小bug的过程,那那些都是很容易解决的。
之后运行书中的的其他测试代码也是完美运行的,解决就到此了。
总结:
出现上述问题是服务器没启动导致连接不上,其实现在看来这问题也不是大问题,仔细研究下错误代码应该很容易找到,但是当时自己就是这么蠢啊~~~使用HTTPie测试web服务时,要先启动服务器,再执行执行测试代码。打开两个cmd界面就行了。
调试过程很考验人,很痛苦。有时折腾几小时都没结果,耐心很重要,一步一步研究错误代码,顺藤摸瓜,一般都能找到最上层的问题,加油吧!别忘了还有google,github,stackoverflow,互联网。 没有解决不了的困难哈哈~