# HTTP\_GET - mit Authorization Basic

**URL:** <https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521>\
**Category:** Modulentwicklung\
**Created:** [23. Februar 2013 um 17:25 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521 "2013-02-23T17:25:51Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/oscat/original/1X/2efdfb9c592ff9a666c94dff124ee84fa863dae5.jpeg) [@system](https://oscat.discourse.group/u/system)\
**Post date:** [23. Februar 2013 um 17:25 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/1 "2013-02-23T17:25:51Z")

</div>

Hallo,

ich habe einen Vorschlag für eine Erweiterung des HTTP\_GET.  
Hatte selbst gerade das Problem, dass ich einen Webinterface mit Authorization Basic, spricht Base64 verschlüsselt, abfragen wollte.  
Mit dem original HTTP\_GET bekam ich immer “401 Unauthorized”, obwohl ich den Benutzernammen und Passwort im URL hatte.  
Also hab ich im HTTP\_GET geschaut, wo der Header zusammen gesetzt wird und hab ihn um folgende Zeile ergänzt:

VAR\_INPUT  
AUTHORIZATION  
END\_VAR

text := CONCAT(text,URL\_DATA.HEADER);  
\_STRING\_TO\_BUFFER(STR:=text,POS:=idx,PT:=ADR(S\_BUF.BUFFER),SIZE:=SIZEOF(S\_BUF.BUFFER)); (\* HTTP Version in buffer kopieren \*)  
idx := idx + LEN(text);

text:=CONCAT('Authorization: Basic ', AUTHORIZATION);  
text := CONCAT(text,delimiter4b);  
\_STRING\_TO\_BUFFER(STR:=text,POS:=idx,PT:=ADR(S\_BUF.BUFFER),SIZE:=SIZEOF(S\_BUF.BUFFER)); (\* HTTP Authorization in buffer kopieren \*)  
idx := idx + LEN(text);

text := CONCAT('Host: ',URL\_DATA.DOMAIN);  
text := CONCAT(text,delimiter4b); (\* workaround für pcworx → kein $0D$0A als Stringkonstante möglich _)  
\_STRING\_TO\_BUFFER(STR:=text,POS:=idx,PT:=ADR(S\_BUF.BUFFER),SIZE:=SIZEOF(S\_BUF.BUFFER)); (_ HTTP Host in buffer kopieren \*)  
idx := idx + LEN(text);

Man könnte das Ganze noch mit einem boolschen Eingang am HTTP\_GET aktivieren/deaktivieren.  
Habe dann noch den BASE64\_ENCODE\_STR vor den Eingang AUTHORIZATION am HTTP\_GET gesetzt. Diesen könnte man auch fest integrieren.

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [23. Februar 2013 um 18:01 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/2 "2013-02-23T18:01:31Z")

</div>

hallo neutrino2k

danke für deine idee und lösung

ich werde es auf meine ToDo liste setzen…

---

<div class="post-metadata">

**Author:** ![peter.haider](https://avatars.discourse-cdn.com/v4/letter/p/ecd19e/32.png) [@peter.haider](https://oscat.discourse.group/u/peter.haider)\
**Post date:** [17. April 2015 um 16:55 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/3 "2015-04-17T16:55:26Z")

</div>

Guten Abend,  
leider habe ich selbiges Problem mit dem Fehler 401 Unauthorized.

In der oscat\_network\_121 für PC-Worx ist die oben genannte Lösung nicht umgesetzt.  
Auch die oscat\_network\_130 aus dem Forum beinhaltet keine Authentifizierung mittels User und Passwort.  
Nach vergeblicher Mühe der Implementierung bitte ich um Hilfe bei der Integration in den HTTP\_GET Baustein der oscat\_network\_121 oder um einen funktionierenden Baustein.

Besten Dank im Voraus,  
Peter

---

<div class="post-metadata">

**Author:** ![peter.haider](https://avatars.discourse-cdn.com/v4/letter/p/ecd19e/32.png) [@peter.haider](https://oscat.discourse.group/u/peter.haider)\
**Post date:** [20. April 2015 um 09:20 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/4 "2015-04-20T09:20:29Z")

</div>

Also, die Athentifizierung funktioniert nun soweit(siehe unten)  
Nur erkennt der Baustein kein “DONE”, obwohl im R\_BUF.BUFFER “1.1 200 OK” steht(Ausserhalb des Bausteins abgefragt).  
Scheinbar ein Problem von BUFFER\_SEARCH in Step 30.  
Deaktiviere ich die User Authentication, der Fehler 401 tritt auf, dann ermittelt die Suche eine del\_pos von 139!

Bitte um Hilfe

(\* -------------------------------------------------------------------------_)  
text := CONCAT(text,URL\_DATA.HEADER);  
\_STRING\_TO\_BUFFER(STR:=text,POS:=idx,PT:=S\_BUF.BUFFER,SIZE:=UINT#4096); (_ HTTP Version in buffer kopieren _)  
S\_BUF.BUFFER:=\_STRING\_TO\_BUFFER.pt;  
idx := idx + LEN(text);  
(_ -------------------------------------------------------------------------_)  
(_ Authorization-Header in der Form Benutzername:Passwort Base64-codiert _)  
(_ -------------------------------------------------------------------------_)  
user\_pwd := CONCAT(URL\_DATA.USER,‘:’);  
user\_pwd := CONCAT(user\_pwd,URL\_DATA.PASSWORD);  
(_ -------------------------------------------------------------------------_)  
BASE64\_ENCODE\_STR\_1(RUN:=USER\_PWD\_ACTIVE,STR1:=user\_pwd,STR2:=user\_pwd\_base64);  
user\_pwd:=BASE64\_ENCODE\_STR\_1.STR1;  
user\_pwd\_base64:=BASE64\_ENCODE\_STR\_1.STR2;  
(_ -------------------------------------------------------------------------_)  
(_ HTTP Authorization in buffer kopieren _)  
(_ -------------------------------------------------------------------------_)  
IF USER\_PWD\_ACTIVE THEN  
text:=CONCAT('Authorization: Basic ', user\_pwd\_base64);  
text := CONCAT(text,delimiter4b);  
\_STRING\_TO\_BUFFER(STR:=text,POS:=idx,PT:=S\_BUF.BUFFER,SIZE:=UINT#4096);   
S\_BUF.BUFFER:=\_STRING\_TO\_BUFFER.pt;  
idx := idx + LEN(text);  
END\_IF;  
(_ -------------------------------------------------------------------------_)  
text := CONCAT('Host: ',URL\_DATA.DOMAIN);  
text := CONCAT(text,delimiter4b); (_ workaround für pcworx → kein $0D$0A als Stringkonstante möglich _)  
\_STRING\_TO\_BUFFER(STR:=text,POS:=idx,PT:=S\_BUF.BUFFER,SIZE:=UINT#4096); (_ HTTP Host in buffer kopieren _)  
S\_BUF.BUFFER:=\_STRING\_TO\_BUFFER.pt;  
idx := idx + LEN(text);  
(_ -------------------------------------------------------------------------a1,221a\*

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [21. April 2015 um 04:37 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/5 "2015-04-21T04:37:59Z")

</div>

hi

mach mal eine wireshark aufzeichung davon (mit Authorization)

dann kann ich sehen was im detail hin und her geschickt wird und sehr schnell erkennen was noch falsch läuft !

---

<div class="post-metadata">

**Author:** ![peter.haider](https://avatars.discourse-cdn.com/v4/letter/p/ecd19e/32.png) [@peter.haider](https://oscat.discourse.group/u/peter.haider)\
**Post date:** [1. Mai 2015 um 15:36 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/6 "2015-05-01T15:36:53Z")

</div>

Nachdem der Switch mit Portspiegelung geliefert wurde siehe Anhänge.

172.20.10.11 = Phoenix SPS mit HTTP\_Get Baustein  
172.20.10.254 = Router  
172.20.3.0 = PC mit funktionierender Firefox Anfrage(Browser Meldung “SMS send done”)

Besten Dank,  
Peter

[gelöscht durch Administrator]

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [2. Mai 2015 um 03:39 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/7 "2015-05-02T03:39:14Z")

</div>

hi

du musst schon das ganze file hergeben  
der dem bild kann man nicht das problem lösen !

empfehlung  
ändere den zugangscode vorher dem aufzeichnen oder nacher … wie du willst  
dann brauchst du keine angst haben das jemand deinen zugriffcode hat !

---

<div class="post-metadata">

**Author:** ![peter.haider](https://avatars.discourse-cdn.com/v4/letter/p/ecd19e/32.png) [@peter.haider](https://oscat.discourse.group/u/peter.haider)\
**Post date:** [2. Mai 2015 um 04:09 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/8 "2015-05-02T04:09:05Z")

</div>

Hier die beiden Dateien, sind sowieso nur Testdaten…

[gelöscht durch Administrator]

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [2. Mai 2015 um 05:53 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/9 "2015-05-02T05:53:26Z")

</div>

hallo

hab mir das mal kurz angesehen

es passiert normalerweise folgendes

1. deine parameter werden an den server übermittelt
2. der server schickt dann den http header (200 OK) als antwort
3. dann dauert es ca. 2 sekunden bis dein server die arbeit erledigt hat und schickt nachträglich eine html-seite als bestätigung

das der header und die body daten zweigeteilt sind und mit 2 sekunden abstand folgen ist das jetzige problem

der http\_get baustein denkt nach der ersten antwort das alles erledigt ist und beendet die verbindung , da er ja nicht ahnen kann das noch etwas folgt.

allerdings hast du beim hhtp\_get baustein auch den http1.0 modus vorgegeben und der server antwortet mit http 1.1  
das ergibt wahrscheinlich auch das grundproblem

du solltest also beim http\_get baustein auf mode 3 umstellen  
und beim ip\_control.timeout mindestens 4-5 sekunden

dann sollte normalerweise header und body bei der sps ankommen und nach timeout (5 sekunden) wird die übertragung als beendet angesehen und dann so hoffe ich sollte es auch funktionieren

ändere mal dein programm und mache wieder einen wireshark mitschnitt  
wenn es noch nicht funktioniert stelle den mitschnitt wieder online  
dann werde ich nochmals nachbessern

mfg peewit

---

<div class="post-metadata">

**Author:** ![peter.haider](https://avatars.discourse-cdn.com/v4/letter/p/ecd19e/32.png) [@peter.haider](https://oscat.discourse.group/u/peter.haider)\
**Post date:** [2. Mai 2015 um 06:09 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/10 "2015-05-02T06:09:44Z")

</div>

Hat leider nicht geklappt mit Mode byte#3 und ip\_control.timeout von 5s

[gelöscht durch Administrator]

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [2. Mai 2015 um 07:49 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/11 "2015-05-02T07:49:45Z")

</div>

hi

so wie es aussieht wird zwischen header und body eine trennmarkierung verwendet die ich nicht vorgesehen habe

abgefragt wird bisher $D$A$D$A oder $A$A aber kein $D$A

öffne die lib als projekt und ergänze den code vom http\_get wie dargestellt  
siehe neuen block mit (neu neu ) kommentar

```auto

			(* kein Ende gefunden ? -> andere Ende-Codierung suchen *)
			IF del_pos = 0 THEN
          			(* workaround für pcworx -> kein $0A$0A als Stringkonstante möglich *)
          			del_end := CONCAT(BYTE_TO_STRING(BYTE#16#0A,'%c'),BYTE_TO_STRING(BYTE#16#0A,'%c'));

          			(* HTTP HEADER Ende suchen -> durch $A$A erkennbar bei Multics, Unix-Derivate,Mac OS X *)
          			BUFFER_SEARCH(size:=R_BUF.SIZE,str:=del_end,pos:=0,ign:=FALSE,pt:=R_BUF.BUFFER);
          			R_BUF.BUFFER:=BUFFER_SEARCH.pt;
		  			del_pos := BUFFER_SEARCH.BUFFER_SEARCH;
        		END_IF;

			(* NEU NEU NEU kein Ende gefunden ? -> andere Ende-Codierung suchen *)
			IF del_pos = 0 THEN
          			(* HTTP HEADER Ende suchen -> $0D$0A *)
          			BUFFER_SEARCH(size:=R_BUF.SIZE,str:=delimiter2b,pos:=0,ign:=FALSE,pt:=R_BUF.BUFFER);
          			R_BUF.BUFFER:=BUFFER_SEARCH.pt;
		  			del_pos := BUFFER_SEARCH.BUFFER_SEARCH;
        		END_IF;

				IF del_pos > 0 THEN
					HEADER_START := UINT#0;
					HEADER_STOP := INT_TO_UINT(del_pos + LEN(del_end) - 1);
					TOTAL_SIZE := -1; (* HTTP Header empfangen aber noch keine gesamtlänge bekannt *)
				END_IF;

```

---

<div class="post-metadata">

**Author:** ![peter.haider](https://avatars.discourse-cdn.com/v4/letter/p/ecd19e/32.png) [@peter.haider](https://oscat.discourse.group/u/peter.haider)\
**Post date:** [2. Mai 2015 um 09:55 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/12 "2015-05-02T09:55:49Z")

</div>

So wie du es beschrieben hast funktionierte es nicht.  
Ich habe aber einfach deinen Code wieder entfernt und del\_end auf delimiter2b gesetzt:

```auto
(* HTTP HEADER Ende suchen -> durch $0D$A$0D$A erkennbar bei DEC RT-11,CP/M,MS-DOS,Windows *)
del_end := delimiter2b;

```

Jetzt bekomme ich ein Done vom Baustein.  
Soll ich die Zuweisung auf “del\_end” so belassen?

Und, wie du schon erkannt hast, bekomme ich eine Meldung in Form einer Webseite zum Status des SMS Versands.  
Da ich eine Simkarte ohne Telefonie Guthaben zum testen verwendete, kam die Meldung" SMS sending failed"  
Jetzt sollte ich das unabhängig vom Done noch zusätzlich überwachen.  
Wie können wir den Inhalt der nachträglich gesendeten Webseite auf “failed” oder “successfully sent” überprüfen, bzw in eine Variable schreiben?

Besten Dank im Voraus

[gelöscht durch Administrator]

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [2. Mai 2015 um 12:49 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/13 "2015-05-02T12:49:50Z")

</div>

hi

irgendwo hatte ich wahrscheinlich einen kleinen fehler  
die idee war aber zum glück die richtige

da du nun die antwortdaten korrekt empfangen kannst sollte der rest kein riesen problem sein

der baustein gibt dir bei “BODY\_START” und “BODY\_STOP” an wo bis wo sich die BODY Daten im R\_BUFFER befinden

folgenden markanten text gibt es

“SMS successfully sent” und “SMS sending failed”

sobald die antwortdaten im buffer stehen benutzt den den baustein “BUFFER\_SEARCH”  
um genau von start bis stop position nach den TEXT “SMS successfully sent” zu suchen  
findest du den text nicht dann gab es ein problem ansonsten ok

wie man den buffer\_search anwendet kannst du im http\_get baustein selber dir auch ansehen

mach doch nochmals eine wireshark-aufzeichnung mit der jetzigen version wo die kompletten daten ankommen und wo die negative antowrt vorkommt

folgend siehst du den body\_daten text der als antwort kommt (eine echte html-seite)

```auto

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>UR5i-v2</title>
<style type="text/css">
<!--
body, table, tr, td, a {
  font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif;
}
form, input {
  margin: 0px;
}
pre {
  margin: 10px 0px 10px 0px;
}
h2 {
  font-size: 24px; margin-bottom: 3px;
}
a {
  color: #0033CC; text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
.logo {
  color: #000080; text-shadow: #B0C0E0 2px 2px 2px; filter: shadow(color=#B0C0E0, direction=145, strength=4);
}
.window {
  background-color: #F4F4F4;
}
.title {
  color: #FFFFFF; background-color: #000080; border-color: #000080; font-weight: bold;
}
.header {
  color: #000000; background-color: #C8D8FF;
}
.input {
  width: 165px;
}
-->
</style>
</head>

<body bgcolor="#FFFFFF">
<center>
<form name="f" action="">
<table cellspacing="0" cellpadding="5" border="3" class="window">
  <tr>
    <td bgcolor="#008000" align="center"><font color="#FFFFFF"><b>Send SMS</b></font></td>
  </tr>
  <tr>
    <td>
      <table>
        <tr align="center">
          <td>SMS successfully sent.</td>
        </tr>
        <tr align="center">
          <td id="button"><a href="send.cgi">&raquo; Back &laquo;</a></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
</form>
</center>
<script type="text/javascript">
<!--
document.getElementById('button').innerHTML = '<input type="button" name="button" value="Back" onclick="location.href=\'send.cgi\'">';
document.f.button.focus();
//-->
</script>
</body>

</html>

```

---

<div class="post-metadata">

**Author:** ![peter.haider](https://avatars.discourse-cdn.com/v4/letter/p/ecd19e/32.png) [@peter.haider](https://oscat.discourse.group/u/peter.haider)\
**Post date:** [3. Mai 2015 um 11:07 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/14 "2015-05-03T11:07:44Z")

</div>

So, nun bekomme ich den Suchstring, wenn im HTML Body vorhanden, als Ausgabe.  
Ein Vergleich der beiden außerhalb des Bausteins ermöglicht mir in Kombination mit “DONE” ein sicheres erkennen ob die SMS versendet wurde.

```auto
[/
			DONE := TRUE;
			IP_C.C_ENABLE := FALSE; (* Verbindung abbauen *)
		 
(* ------------------------------ Body Daten auf SMS Versand-Bestätigung durchsuchen -----------------------------------------*)
        	        IF BODY_START > UINT#0 THEN
				BUFFER_SEARCH_1(SIZE:=R_BUF.SIZE,STR:=SEARCH_BODY_STRING,POS:=UINT_TO_INT(BODY_START),IGN:=FALSE,PT:=R_BUF.BUFFER);
				R_BUF.BUFFER:=BUFFER_SEARCH_1.PT;
				search_string_startpos:=BUFFER_SEARCH_1.BUFFER_SEARCH;
			ELSE
				search_string_startpos:=-1;
			END_IF;

			IF search_string_startpos > -1 THEN
				BUFFER_TO_STRING_NW_1(PT:=R_BUF.BUFFER,SIZE:=R_BUF.SIZE,START:=INT_TO_UINT(search_string_startpos),STOP:=INT_TO_UINT(search_string_startpos) + INT_TO_UINT(len(SEARCH_BODY_STRING)-1));
				R_BUF.BUFFER:=BUFFER_TO_STRING_NW_1.PT;
				BODY_STRING:=BUFFER_TO_STRING_NW_1.BUFFER_TO_STRING;
			ELSE
				BODY_STRING:='Keine Übereinstimmung';
			END_IF;
(* -------------------------------------------------------------------------------------------------------------------------------*)code]

```

Anbei noch die Wireshark Datei mit negativer Antwort “SMS sending failed”.

@ peewit: Besten Dank für deine Zeit!

PS: im HTTP\_Get Baustein sind einige Warnungen in PCWorx gemeldet worden, da diverse Baustein Aufrufinstanzen mehrmals verwendet werden.(zb:\_STRING\_TO\_BUFFER)  
Die habe ich bereinigt. Das sollte bei vielen OSCAT Bausteinen erledigt werden…

[gelöscht durch Administrator]

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [3. Mai 2015 um 19:37 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/15 "2015-05-03T19:37:22Z")

</div>

hi

thema:  
PS: im HTTP\_Get Baustein sind einige Warnungen in PCWorx gemeldet worden, da diverse Baustein Aufrufinstanzen mehrmals verwendet werden.(zb:\_STRING\_TO\_BUFFER)  
Die habe ich bereinigt. Das sollte bei vielen OSCAT Bausteinen erledigt werden…

bei pcworx ist es manchmal notwendig einen fb statt einer function zu verwenden obwohl es technisch keinen grund gibt  
da bei einen fb immer pro instanz speicher belegt wird, verwende ich absichtlich immer die gleiche instanz

da die fb’s aber sich nichts merken müssen ist es kein problem  
die meldung kannst du ignorieren und ist in dem fall bewusst in kauf genommen worden  
jeden fb aufruf mit einer eigenen instanz aus zustatten belegt in dem fall unnütz speicher

im original ist ja der buffer\_search eine function aber so nicht in pcworx umsetzbar

aber du kannst es natürlich so machen , denk nur dran das mehr speicher verbraten wird.

---

<div class="post-metadata">

**Author:** ![peter.haider](https://avatars.discourse-cdn.com/v4/letter/p/ecd19e/32.png) [@peter.haider](https://oscat.discourse.group/u/peter.haider)\
**Post date:** [13. Februar 2025 um 09:43 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/16 "2025-02-13T09:43:26Z")

</div>

Einen schönen Tag,  
10 Jahre später erfordert die HTTP\_GET Kommunikation nun eine Session-ID.

Gibt es eine Version des Baustein, die das kann?  
Hier der Kommunikationsablauf.  
[https://download.bellequip.at/HTTP\_API\_ab\_Firmware\_5.3.1.pdf](https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdownload.bellequip.at%2FHTTP_API_ab_Firmware_5.3.1.pdf&data=05|02||64edf83012804271bca608dd41e294c6|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|638739163804396128|Unknown|TWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D|0|||&sdata=PuzvvZcuxiMNJGz9zaD6kUTnRtD5OXyWy35wrkGQ04I%3D&reserved=0)

Besten Dank im Voraus

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [18. Februar 2025 um 18:00 UTC](https://oscat.discourse.group/t/http-get-mit-authorization-basic/1521/17 "2025-02-18T18:00:23Z")

</div>

nein, was fertiges gibt es nicht aber das prinzip ist relativ klar

der HTTP\_GET Baustein arbeitet nur mit dem HEADER und URL PARAMETER und benutzt keinen BODY  
und ein HTTP\_POST Baustein hat keine URL PARAMETER aber HEADER und BODY DATEN

Dein Ablauf erfordert folgende Schritte

1. Mittels HTTP\_POST Abfrage bekommst du einen SESSION-COOKIE als Antwort  
Nachdem die SPS Bausteine keinen Browser nachbilden werden die SESSION-COOKIE auch nicht automatisch  
verwaltet. Somit ist es deine Aufgabe aus der Antwort den SESSION-COOKIE zu sichern.

2. Mit HTTP\_GET und dem SESSION-COOKIE kann du dann eine REQUEST\_ID abfragen

3. Mit HTTP\_POST kannst du dann mit SESSION-COOKIE und REQUEST-ID und SMS Daten den SMS Versand starten.

den HTTP\_POST Baustein gibt es noch nicht aber im Prinzip relativ einfach aufgebaut.  
Aber das ist trotzdem für ungeübte relativ kompliziert.

Ein möglicher Schritt wäre die Befehle zuerst manuell mittels CURL auszuführen und gleichezeitig den Datenverkehr mit Wireshark aufzuzeichnen. Dann kann man sehr schön analysieren welche Daten und in welcher Form die DAten ausgetauscht werden.

Das Modem bietet aber auch alternative Protokolle die einfache umzusetzen wären.  
Wie z.b. eine klassische Telnet Verbindung.  
Damit wirst du vermutlich eher zurecht kommen.

LG peewit
