peachplayer Geschrieben 21. Januar 2023 Melden Share Geschrieben 21. Januar 2023 Hallo Leute Weiss jemand, wie man xml-dateien von einem eigenen webserver laden kann. Habs mit einem webrequest versucht, jedoch geht das nicht, d.h. es kommt ein Http-error Fehlermeldung. Ich verwende folgenden xml-Parser: public class MyXML { static public List<T> DeserializeFromXML<T>(string path) { XmlSerializer deserializer = new XmlSerializer(typeof(List<T>)); TextReader textReader = new StreamReader(path); List<T> list; list = (List<T>)deserializer.Deserialize(textReader); textReader.Close(); return (List<T>)list; } Dieser funktioniert jedoch nur mit lokalen Dateien. Von einem webserver kann ich keine daten laden. Geht das nur via php und mysql? Gruss, peachplayer Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 21. Januar 2023 Melden Share Geschrieben 21. Januar 2023 vor 32 Minuten schrieb peachplayer: Geht das nur via php und mysql? Wie du dein Backend schreibst, ist egal. php ist eine von viele Sprachen, mit denen du einen Webserver schreiben kannst, MySQL ist für Datenbanken. Die brauchst du nicht unbedingt um XML-Daten bereitzustellen. Was du brauchst, ist Code in deiner App, die nicht auf der Festplatte nach einer Datei sucht, sondern eine HTTP-Anfrage sendet und die Antwort empfängt. Da kann der StreamReader wohl auch irgendwie helfen, aber in Unity nimmst du dafür einfach den guten UnityWebRequest. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
peachplayer Geschrieben 23. Januar 2023 Autor Melden Share Geschrieben 23. Januar 2023 das laden von xml-dateien von einer website habe ich hingekriegt, jetzt sollte ich die daten aber auch noch speichern können. Geht das auch mit der WWW-Klasse? Gruss peachplayer Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 23. Januar 2023 Melden Share Geschrieben 23. Januar 2023 Nimm statt WWW bitte UnityWebRequest. Ist ein bisschen schwieriger am Anfang, aber WWW ist veraltet. Generell ist die Antwort aber ja: Beide können POST-Anfragen schicken, mit denen du Daten übermitteln kannst. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
peachplayer Geschrieben 23. Januar 2023 Autor Melden Share Geschrieben 23. Januar 2023 leider geht das nicht richtig. Habs wie folgt probiert: public IEnumerator SaveData(string Flurname, float Fläche, string Kultur, string Datum, float Ertrag, int Nummer) { string saveUrl = "http://web01.petweber.ch/Parzelle.xml"; WWWForm form = new WWWForm(); form.AddField("Parzellenname", Flurname); form.AddField("Flaeche", Fläche.ToString()); form.AddField("Ertrag", Ertrag.ToString()); form.AddField("Kultur", Kultur); form.AddField("Datum", Datum); form.AddField("Nummer", Nummer.ToString()); Debug.Log(Flurname + Fläche + Kultur); UnityWebRequest www = UnityWebRequest.Post("http://web01.petweber.ch/Parzelle.xml", form); yield return www.SendWebRequest(); if (www.isNetworkError || www.isHttpError) { Debug.Log(www.error); } else { Debug.Log("Form upload complete!"); } } Danach muss ich die Firewall des Servers ausschalten, damit kein Http-error kommt und es wird trotzdem nicht gespeichert. Woran liegt das? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 23. Januar 2023 Melden Share Geschrieben 23. Januar 2023 Du kannst nicht einfach Dateien auf deinem Webserver überschreiben. Du brauchst Code auf dem Server, der die Daten entgegen nimmt und in eine XML-Datei speichert. Jedem dahergelaufenen uneingeschränkt Zugriff auf Dateien auf deinem Server zu geben wäre auch wirklich keine schlaue Idee Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
peachplayer Geschrieben 23. Januar 2023 Autor Melden Share Geschrieben 23. Januar 2023 danke für den tipp! Das geht dann wohl nur mit php-code? wie sieht sowas genau aus? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 24. Januar 2023 Melden Share Geschrieben 24. Januar 2023 Kommt zu 100% auf deinen Hoster und dein Setup dort an. Die meisten Webhoster bieten PHP an, aber Web Backends kann man mit so ziemlich jeder Sprache machen. Musst dich mal informieren, was dein Hoster dir so anbietet. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.