Python nybörjare, sträng vs, variabel
Postat: 27 oktober 2022, 17:01:28
				
				Jag har en RPi som är ansluten till ett 4Gmodem (Huawei E5776s) 
Jag försöker skicka SMS med en hempulad Pythonsnutt i RPin som pratar med modemet.
Jag är inte van vid Python.
Nedanstående kod fungerar som den ska.
Byter jag ut strängen "Ost Ost Ost" till variabeln Message så får jag en Exception.
Hur ska jag felsöka detta?
			Jag försöker skicka SMS med en hempulad Pythonsnutt i RPin som pratar med modemet.
Jag är inte van vid Python.
Nedanstående kod fungerar som den ska.
Byter jag ut strängen "Ost Ost Ost" till variabeln Message så får jag en Exception.
Hur ska jag felsöka detta?
Kod: Markera allt
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import sys
import requests
import xml.etree.ElementTree as ET
def LoginToSMSGateway(sms_gateway_ip):
    api_url = '/api/user/login'
    post_data = '<request><Username>admin</Username><Password>YssAsQ==</Password>' #Hardcoded base64  pwd
    r = requests.post(url='http://' + sms_gateway_ip + api_url, data=post_data)
    if r.status_code == 200:
        result = False
        root = ET.fromstring(r.text)
        for results in root.iter('response'):
            if results.text == 'OK':
                result = True
        return result
    else:
        return False
def SendSMS(sms_gateway_ip):
    class SMS:
        Opened = False
        Message = "This is the message"
    api_url = '/api/sms/send-sms'
    post_data = '<?xml version="1.0" encoding="UTF-8"?><request><Index>-1</Index><Phones><Phone>0706123456</Phone></Phones><Sca></Sca>'\
    + '<Content> ' + "Ost Ost Ost" + ' </Content><Length>19</Length><Reserved>1</Reserved><Date>2022-01-10 21:37:54</Date></request>'
    headers = {'Referer': 'http://' + sms_gateway_ip + '/html/smsinbox.html'}
    r = requests.post(url='http://' + sms_gateway_ip + api_url, data=post_data, headers=headers)
    return r
def main():
  try:
   if LoginToSMSGateway('192.168.1.1'):
      print ('Logged in.')
      smsList = SendSMS('192.168.1.1')
      print (smsList.text)
      sys.exit(0);
  except Exception:
   print ('No joy');
   sys.exit(1);
if __name__ == "__main__":
    main()