peachplayer Posted January 21 Report Share Posted January 21 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 Quote Link to comment Share on other sites More sharing options...
Sascha Posted January 21 Report Share Posted January 21 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. Quote Link to comment Share on other sites More sharing options...
peachplayer Posted January 23 Author Report Share Posted January 23 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 Quote Link to comment Share on other sites More sharing options...
Sascha Posted January 23 Report Share Posted January 23 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. Quote Link to comment Share on other sites More sharing options...
peachplayer Posted January 23 Author Report Share Posted January 23 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? Quote Link to comment Share on other sites More sharing options...
Sascha Posted January 23 Report Share Posted January 23 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 Quote Link to comment Share on other sites More sharing options...
peachplayer Posted January 23 Author Report Share Posted January 23 danke für den tipp! Das geht dann wohl nur mit php-code? wie sieht sowas genau aus? Quote Link to comment Share on other sites More sharing options...
Sascha Posted January 24 Report Share Posted January 24 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.