这篇文章给大家聊聊关于my pico在线观看,以及获取请求的HTTP方法对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
介绍
本esp32picoweb教程的目的是解释如何从执行给micropythonpicoweb应用程序的请求中获取http方法。
通过本esp32模块教程所显示的测试是使用集成在esp32开发板中的DFRobot的esp-wroom-32设备执行的。该代码是在upycaft上开发的。您可以在前面的帖子中检查如何使用upycaft:http://mc.dfrobot.com.cn/thread-273326-1-1.html。
代码
像往常一样,我们将首先导入所需的模块并将ESP32连接到WiFi网络,从而在测试时可以从Web浏览器对其进行访问。为简单起见,我在此处明文显示了WiFi连接代码,这段代码可以很容易地封装在模块内的函数中。
nimportpicowebnimportnetworknnssid="yourNetworkName"npassword="yourPassword"nnstation=network.WLAN(network.STA_IF)nstation.active(True)nstation.connect(ssid,password)nnwhilestation.isconnected()==False:npassnnip=station.ifconfig()n
在连接WiFi之后,我们将创建一个Picowebapp实例,并声明一条路由,通过这条路由获取一个请求(request)并检查HTTP方法。在此示例中,我们将使用索引路由。
n@app.route("/")nndefindex(req,resp):nn#Handlingfunctioncoden
请注意,先前声明的处理函数有两个参数,这两个参数由系统框架自动赋值。正如我们在之前的教程中看到的那样,第二个参数是一个数据流写入器(StreamWriter),我们用它将响应发送回客户端。
第一个参数我们在之前还没使用过,它是一个HTTPRequest类对象:https://github.com/pfalcon/picoweb/blob/master/picoweb/__init__.py#L47,可提供关于所接收的请求(request)的一些信息。
因此,为了获得所接收的请求(request)的HTTP方法,我们只需访问HTTPRequest类对象的方法属性即可。注意,当我们指定路由处理函数的参数时,我们调用了对象req。
nmethod=req.methodnprint("Methodwas:"+method)n
现在,我们已经知道了这个方法,接下来我们将在路由上构建一个简单的逻辑,即,当方法为POST时返回“不允许的HTTP方法”错误,否则返回一些测试信息。
关于如何返回HTTP错误的信息,请查看之前的文章。“不允许的方法”对应的错误代码为405[1]。
nifmethod=="POST":nyieldfrompicoweb.http_error(resp,"405")nelse:nyieldfrompicoweb.start_response(resp)nyieldfromresp.awrite("HTTPmethodwasallowed")n
最后,我们将调用run方法启动这个app。脚本的完整代码如下所示。
nimportpicowebnimportnetworknnssid="yourNetworkName"npassword="yourPassword"nstation=network.WLAN(network.STA_IF)nstation.active(True)nstation.connect(ssid,password)nnwhilestation.isconnected()==False:npassnnip=station.ifconfig()nnapp=picoweb.WebApp("myApp")nn@app.route("/")ndefindex(req,resp):nmethod=req.methodnnprint("Methodwas:"+method)nnifmethod=="POST":nyieldfrompicoweb.http_error(resp,"405")nnelse:nyieldfrompicoweb.start_response(resp)nyieldfromresp.awrite("HTTPmethodwasallowed")nnapp.run(debug=True,host=ip[0])n
测试代码
为了测试代码,只需将脚本上传到ESP32开发板上并运行即可。在执行时,URL应该打印到控制台上。为了测试GET方法,只需复制此URL并将其粘贴到Web浏览器上即可。您将看到类似于图1的输出结果,它显示了我们在返回代码中定义的内容。
图1-通过Web浏览器对ESP32Picowebapp执行HTTPGET请求的输出结果
对于此请求,如果我们检查MicroPython提示符中的输出,会发现它显示了正确的方法,如图2所示。
图2-响应HTTPGET请求的路由处理函数的输出结果
为了测试发送一个HTTPPOST请求,我们可以使用像Postman这样的工具,它可以使发送HTTP请求的过程非常简单。您可以在此处查看有关如何使用Postman发送HTTPPOST请求的视频简介。
图3显示了使用此工具发送POST请求的输出结果。可以看出,正如预期那样,返回的HTTP代码是405。
图3-通过Postman执行HTTPPOST请求的输出结果
最后,如果我们回到MicroPython控制台,会发现控制台上也显示了正确的HTTP方法,如图4所示。
图4-路由处理函数对一个HTTPPOST请求的输出结果
关于my pico在线观看和获取请求的HTTP方法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。