Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   HBCI 2.2 (https://www.delphipraxis.net/97870-hbci-2-2-a.html)

SleepyMaster 17. Aug 2007 17:00


HBCI 2.2
 
Hi ihrs,

ich versuche Momentan einen HBCI-Client zu schreiben (C#). Zum testen nutze ich den Server https://www.letstrade.de/j2hbci-gateway (Per Onlinebanking Software funktioniert der auch gut ;-) ). Hab mir unter http://www.hbci-zka.de/dokumente/spe...ch/HBCI22a.pdf das mal angeschaut und dann mal ein bisschen probiert aber irgendwie scheint der meine HBCI Anfrage noch nicht zu mögen.

Egal was ich an den Server schicke, ich bekomm immer einen 400er Fehler mit der Meldung
Zitat:

The request sent by the client was syntactically incorrect ().
Die einfachste Anfrage die ich an den Server geschickt habe:
Code:
HNHBK:1:3+00000000042+220+0+1'HNHBS:2:1+1'
Hier mal noch der Quellcode:
Code:
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://www.letstrade.de/j2hbci-gateway");
            req.Method = "POST";
            StreamWriter sw = new StreamWriter(req.GetRequestStream());

            sw.Write(textBox1.Text);
            sw.Close();

            StreamReader sr;
            try
            {
                WebResponse res = req.GetResponse();
                sr = new StreamReader(res.GetResponseStream());
            }
            catch (WebException ex)
            {
                sr = new StreamReader(ex.Response.GetResponseStream());
            }
            textBox2.Text = sr.ReadToEnd();
Vielleicht hat jemand eine Ahnung wodran es liegen könnte.

Gruß und Danke,
SleepyMaster

phXql 17. Aug 2007 17:04

Re: HBCI 2.2
 
Encoding? Der Streamwriter verwendet standardmässig UTF-8 soweit ich weiss. Evtl will der HCBI-Server ja n anderes Encoding.

SleepyMaster 17. Aug 2007 17:12

Re: HBCI 2.2
 
Ja der verwendet standartmäßig UTF-8. Und HBCI braucht ISO 8859. Da ich aber auf Anhieb in C# nichts zum Umwandeln in dieses Encoding gefunden habe und da bei beiden Standarts die ersten 128 Positionen dem 7Bit ASCII Standard entsprechen und ich in meinem Request auch nur diese verwende, habe ich mir das erst mal geschenkt.

Hat sonst noch jemand Ideen? Kann es vielleicht sein, dass ich an den HTTP-Request noch einen besonderen Header kleben muss oder sowas?

[Edit:]
Gehe jetzt auf den Server:
https://hbci11.fiducia.de/cgi-bin/hbciservlet

Da bekomme ich als Base64 die Meldung:

Zitat:

HNHBK:1:3+000000000127+300+H07081718200286+70+H070 81718200286:70'HIRMG:2:2+9800::PIN Fehler in der HBCI-Nachricht'HNHBS:3:1+70'
Werd mal ein bisschen damit weiter experimentieren

phXql 17. Aug 2007 17:55

Re: HBCI 2.2
 
Hm. Evtl vor das sw.Close() noch ein sw.Flush() machen.

Zitat:

Durch Entleeren des Streams wird der zugrunde liegende Encoder nicht entleert, wenn Sie nicht ausdrücklich Flush oder Close aufrufen. Wenn AutoFlush auf true festgelegt ist, werden Daten aus dem Puffer in den Stream weggeschrieben, aber der Encoderzustand wird nicht entleert. Dadurch kann der Encoder seinen Zustand beibehalten (Teilzeichen), um den nächsten Block von Zeichen richtig zu codieren. Dieses Szenario betrifft UTF8 und UTF7, bei denen bestimmte Zeichen nur verschlüsselt werden können, nachdem der Encoder das bzw. die angrenzenden Zeichen empfangen hat.

SleepyMaster 17. Aug 2007 20:59

Re: HBCI 2.2
 
Macht hier leider keinen Unterschied...

Ich versuch jetzt erst mal vollständige Anfragen zusammenzubauen und dann mal an einen Sparkassen Server zu schicken.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz