首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Micropython请求体空

Micropython请求体空
EN

Stack Overflow用户
提问于 2022-06-29 08:06:06
回答 1查看 103关注 0票数 0

我有一台服务器,里面有邮政服务。使用micropython,我需要执行POST请求。获取查询,到达REST服务,并使用以下格式正确响应:

代码语言:javascript
复制
s.send(b"GET /sensordata/premises HTTP/1.1\r\nHost:XX.XXX.XXX.XXX\r\n" + "Accept: application/json\r\n\r\n")

但是这个帖子看起来像是到达服务器的请求,但是正文是空的。由于某些原因,没有以正确的方式解释请求的JSON主体。

代码语言:javascript
复制
 from network import WLAN
import socket
import machine
import time
import struct
import json
import pycom

wlan = WLAN(mode=WLAN.STA)
wlan.connect("*****", auth=(WLAN.WPA2, "*****"), timeout=5000)

while not wlan.isconnected():
    machine.idle()
print("Connected to WiFi\n")

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
url = 'XX.XXX.XXX.XXX'

sockaddr = socket.getaddrinfo(url, 80) [0][-1]
s.connect(sockaddr)

print('socket connected')

httpreq = b'POST /sensordata/insertrecords HTTP/1.1 \r\n Host:XX.XXX.XXX.XXX \r\n' + 'Accept: application/json \r\n' + 'Content-Type: application/json\r\n' + ' {\"node_id\":\"1\",\"value\":[{\"measure_time_stamp\":\"2020-10-06T09:25:43\",\"temp\":\"14\",\"humidity\":\"75\",\"ph1\":11,\"ph2\":12,\"ph3\":13}]}\r\n\r\n'
s.send(httpreq)
time.sleep(1)
rec_bytes = s.recv(4096)
print("RESPONSE = " + str(rec_bytes))
print('end')
s.close()
EN

回答 1

Stack Overflow用户

发布于 2022-07-06 13:17:07

您知道要求库吗?它是受流行的Python 请求启发的HTTP库。一个职位请求就是:

代码语言:javascript
复制
import urequests
r = urequests.post('https://your/endpoint')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72797872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档