Python nybörjare, sträng vs, variabel

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
Wirewrap
EF Sponsor
Inlägg: 300
Blev medlem: 27 januari 2016, 19:29:14
Ort: Södertälje

Python nybörjare, sträng vs, variabel

Inlägg av Wirewrap »

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?

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()
danwi
Inlägg: 377
Blev medlem: 16 oktober 2008, 17:00:59
Ort: Linköping

Re: Python nybörjare, sträng vs, variabel

Inlägg av danwi »

Det lär bero på att Message återfinns inne i en klass. Du skulle behöva skriva "SMS.Message" som det ser ut nu. I denna kod ser jag dock ingen anledning till "Class SMS:"-raden, den tillför inget förutom komplexitet.
Användarvisningsbild
Wirewrap
EF Sponsor
Inlägg: 300
Blev medlem: 27 januari 2016, 19:29:14
Ort: Södertälje

Re: Python nybörjare, sträng vs, variabel

Inlägg av Wirewrap »

@danwi Tack för hjälpen!
Så går det när jag samlar ihop kodfragment från olika ställen utan djupare förståelse.
Jag tog bort klassdeklarationen.
Skriv svar