Autor Beitrag
ebber
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 239
Erhaltene Danke: 1

Win XP, Win 7
C# (VS 2010), Delphi (2007), Expression 4
BeitragVerfasst: Do 23.06.11 21:20 
Hallo,

ich habe ein kleines Problem, ich bin mir nur nicht sicher ob es an C#, oder php liegt, oder ob es überhaupt funktioniert.

Ich wollte aus einem C# Programm per Post Daten zu einer php Seite bringen. Die Daten bzw der string enthält aber auch ein paar Sonderzeichen wie &+...

durch:
ausblenden C#-Quelltext
1:
request.ContentType = "application/x-www-form-urlencoded";					

scheint mir das mit den Sonderzeichen allerdings nicht zu gehen?

Kann ich einen Post auch anders encoden? mit z.B. text/html; charset=utf-8?

Ich habe das versucht, allerdings kam dann nicht mehr im php an. Ich habe nur ein "OK" im C# Programm zurückbekommen.

Noch der Code:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
            WebRequest request = WebRequest.Create("http://hhh");

            request.Method = "POST";
            string postData = "er=" + textBox1.Text + "&es=" + "+&=""");
            byte[] byteArray = Encoding.Default.GetBytes(postData);
            System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
            request.ContentType = "text/html; charset=utf-8";
            request.ContentLength = byteArray.Length;


MfG
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 23.06.11 21:44 
Hallo!

Also erst einmal: Wenn Du sagst, die Daten wären url-encoded, musst Du sie natürlich auch url-encoden, da gibt es IIRC eine fertige Methode für. Einfach mal googlen: Suche bei Google "C# URLENCODE"

Genau dasselbe beim Codeschnipsel: Wenn Du Daten als UTF-8 ankündigst, musst Du sie auch als UTF8 kodieren - und nicht die Default-Kodierung benutzen!

Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
ebber Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 239
Erhaltene Danke: 1

Win XP, Win 7
C# (VS 2010), Delphi (2007), Expression 4
BeitragVerfasst: Do 23.06.11 22:03 
Macht Sinn. Ich hatte da auch ein bisschen mit rumgespielt. Hat aber damals schon nichts geändert und jetzt beim gezielten probieren irgendwie auch nicht )-:
ebber Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 239
Erhaltene Danke: 1

Win XP, Win 7
C# (VS 2010), Delphi (2007), Expression 4
BeitragVerfasst: Fr 24.06.11 19:08 
Ich glaube ich stand vorhin ein wenig auf de Schlauch. Du hast mir natürlich die Lösung verraten :) Danke

Mit der Urlencode Funktion von C# werden alle Sonderzeichen in %xx html Zeichen gewandelt, welche keine Probleme in Urls bereiten.

Bei Base64 strings machen nur + und / Probleme, die man leicht durch - und _ ersetzen kann, und später eben wieder zurück.

MfG