micropython / micropython-lib

Core Python libraries ported to MicroPython
Other
2.4k stars 997 forks source link

Urequests can't parse response data #364

Open invertium opened 4 years ago

invertium commented 4 years ago

I'm trying to talk to my nanoleaf over my ESP8266 board. I'm using micropython and the urequests library I installed using upip.install('urequests').

urequests.get works and I can parse the response from something like: https://jsonplaceholder.typicode.com/posts/1

However when I try to parse the response from my nanoleaf with reponse.text the call just stops. I'm testing it over the UART REPL and it just does nothing until I ctrl+c then get a keyboard interrupt:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "urequests.py", line 57, in text
  File "urequests.py", line 49, in content
KeyboardInterrupt:

Using normal python on my x86 and requests with the same line works.

I'm using:

response = urequests.get(url)
response.text

Curl returns this from the nanoleaf:

{"on":{"value":true},"brightness":{"value":76,"max":100,"min":0},"hue":{"value":28,"max":360,"min":0},"sat":{"value":66,"max":100,"min":0},"ct":{"value":2700,"max":6500,"min":1200},"colorMode":"effect"}

Is that a memory issue? I'm not even trying to get the json, just the text result.

jesuslg123 commented 4 years ago

Hi @invertium, I think I run into the same issue today, were the requests works ok but the response body is empty, in my case it was an issue on the response raw clean up process. I have opened this PR https://github.com/micropython/micropython-lib/pull/393, if you can test it it would be great. https://github.com/micropython/micropython-lib/pull/393