Drivers icon indicating copy to clipboard operation
Drivers copied to clipboard

GET to Flask server; Status code: 200 vs. Status code 606

Open LukasSliacky opened this issue 3 years ago • 3 comments

Hi guys, first of all: Thanks for your great project... I am using your driver located here: Drivers/SIM800L.py

I don't know where can be a problem and i am writing here entire my scenario and specific information which i know:

I am using latest version:

modem.get_info()
> 'SIM800 R14.18'

and my device is connected on Internet:

modem.get_ip_addr()
>> '100.67.x.x'

# or

url = 'http://checkip.dyn.com/'
response = modem.http_request(url, 'GET')
print('Response status code:', response.status_code)

>> Response status code: 200

All these my experiments are okay.

And here is my problem:

My webserver is based on Flask (with NGINX server) and i have simple and basic endpoint:

@blueprint.route('/api/', methods=['GET'])
def index():
    request_status = {'status': 'OK'}
    return jsonify(request_status), 200

When i try simple request to my API with requests library ("normal" Python 3.5+):

import requests
r = requests.get('https://ha.datain.app/api/')
print(r.status_code, '/ ', r.content)

>> 200 / b'{"status":"OK"}\n'

And everything looks good...

But when i try similar request to API over my TTGO T-Call SIM800 with code:

print('\nNow running demo http GET...')
url = 'https://ha.datain.app/api/'
response = modem.http_request(url, 'GET')
print('Response status code:', response.status_code)
print('Response content:', response.content)

i see response:

Response status code: 606
Response content: 

A am pasting here all info from your additional log:

=== url = 'https://ha.datain.app/api/'
=== response = modem.http_request(url, 'GET')
=== print('Response status code:', response.status_code)
=== print('Response content:', response.content)

Now running demo http GET...
DEBUG: Writing AT command "b'AT+SAPBR=2,1\r\n'"
DEBUG: Read "b'AT+SAPBR=2,1\r\r\n'"
DEBUG: Read "b'+SAPBR: 1,1,"100.67.239.103"\r\n'"
DEBUG: Read "b'\r\n'"
DEBUG: Detected pre-end
DEBUG: Read "b'OK\r\n'"
DEBUG: Detected exact end
DEBUG: Returning "b'+SAPBR: 1,1,"100.67.239.103"'"
DEBUG: Close the http context if left open somehow...
DEBUG: Writing AT command "b'AT+HTTPTERM\r\n'"
DEBUG: Read "b'AT+HTTPTERM\r\r\n'"
DEBUG: Read "b'ERROR\r\n'"
DEBUG: Http request step #1.1 (inithttp)
DEBUG: Writing AT command "b'AT+HTTPINIT\r\n'"
DEBUG: Read "b'AT+HTTPINIT\r\r\n'"
DEBUG: Read "b'OK\r\n'"
DEBUG: Detected exact end
DEBUG: Returning "b''"
DEBUG: Http request step #1.2 (sethttp)
DEBUG: Writing AT command "b'AT+HTTPPARA="CID",1\r\n'"
DEBUG: Read "b'AT+HTTPPARA="CID",1\r\r\n'"
DEBUG: Read "b'OK\r\n'"
DEBUG: Detected exact end
DEBUG: Returning "b''"
DEBUG: Http request step #1.3 (enablessl)
DEBUG: Writing AT command "b'AT+HTTPSSL=1\r\n'"
DEBUG: Read "b'AT+HTTPSSL=1\r\r\n'"
DEBUG: Read "b'OK\r\n'"
DEBUG: Detected exact end
DEBUG: Returning "b''"
DEBUG: Http request step #2.1 (initurl)
DEBUG: Writing AT command "b'AT+HTTPPARA="URL","https://ha.datain.app/api/"\r\n'"
DEBUG: Read "b'AT+HTTPPARA="URL","https://ha.datain.app/api/"\r\r\n'"
DEBUG: Read "b'OK\r\n'"
DEBUG: Detected exact end
DEBUG: Returning "b''"
DEBUG: Http request step #2.2 (doget)
DEBUG: Writing AT command "b'AT+HTTPACTION=0\r\n'"
DEBUG: Read "b'AT+HTTPACTION=0\r\r\n'"
DEBUG: Read "b'OK\r\n'"
DEBUG: Read "b'\r\n'"
DEBUG: Detected pre-end
DEBUG: Read "b'+HTTPACTION: 0,606,0\r\n'"
DEBUG: Detected startwith end (and adding this line to theoutput too)
DEBUG: Returning "b'OK+HTTPACTION: 0,606,0'"
DEBUG: Response status code: "606"
DEBUG: Http request step #4 (getdata)
DEBUG: Writing AT command "b'AT+HTTPREAD\r\n'"
DEBUG: Read "b'AT+HTTPREAD\r\r\n'"
DEBUG: Read "b'OK\r\n'"
DEBUG: Detected exact end
DEBUG: Returning "b''"
DEBUG: 
DEBUG: Http request step #4 (closehttp)
DEBUG: Writing AT command "b'AT+HTTPTERM\r\n'"
DEBUG: Read "b'AT+HTTPTERM\r\r\n'"
DEBUG: Read "b'OK\r\n'"
DEBUG: Detected exact end
DEBUG: Returning "b''"
Response status code: 606
Response content: 

I think that "problem" is probably on my server, but unfortunately i don't understand, how to prepare my endpoint for request from your modem driver. Please, can you help me with server response what you expecting it?

Thank you for your support. Lukas Sliacky

LukasSliacky avatar Apr 27 '21 19:04 LukasSliacky