usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Net;usingSystem.IO;usingSystem.Runtime.Serialization;usingSystem.Runtime.Serialization.Json;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){varusername="beispiel@beispiel.de";varpassword="password";varmyUri=newUri("https://webservice.tourenplaner.biz/startjob");varhttpWebRequest=(HttpWebRequest)WebRequest.Create(myUri);httpWebRequest.ContentType="application/json; charset=utf-8";httpWebRequest.Accept="application/json";httpWebRequest.Method="POST";NetworkCredentialmyNetworkCredential=newNetworkCredential(username,password);CredentialCachemyCredentialCache=newCredentialCache();myCredentialCache.Add(myUri,"Basic",myNetworkCredential);httpWebRequest.PreAuthenticate=true;httpWebRequest.Credentials=myCredentialCache;using(varstreamWriter=newStreamWriter(httpWebRequest.GetRequestStream())){varjson_obj=newroot{tour=newtour{uid="12345",roundtrip=true,tollfree=false,optimize="time",avoid_highway=false},waypoints=newList<waypoints>(){newwaypoints{uid="1",name="Firma 1",address=newaddress{locality="München",postcode="80803",street="Pündterplatz 8"}},newwaypoints{uid="2",name="Firma 2",address=newaddress{locality="Nürnberg",postcode="90403",street="Weintraubengasse 1"},time=newtime{duration_of_stay=60}},newwaypoints{uid="3",address=newaddress{locality="München",postcode="80331",street="Tal 1"},time=newtime{duration_of_stay=60}}}};MemoryStreamms=newMemoryStream();DataContractJsonSerializerser=newDataContractJsonSerializer(typeof(root));ser.WriteObject(ms,json_obj);Stringjson=Encoding.UTF8.GetString(ms.ToArray());streamWriter.Write(json);streamWriter.Flush();streamWriter.Close();varhttpResponse=(HttpWebResponse)httpWebRequest.GetResponse();using(varstreamReader=newStreamReader(httpResponse.GetResponseStream())){varresult=streamReader.ReadToEnd();Console.WriteLine(result);}}}}[DataContract]classroot{publicroot(){}[DataMember]publictourtour{get;set;}[DataMember]publicList<waypoints>waypoints;}[DataContract]classtour{[DataMember]publicstringuid{get;set;}/* Required CRM-uniqueID , mit welcher dieser Vorgang im CRM verwaltet wird */[DataMember]publicstringoptimize{get;set;}/* Optional Art der Optimierung: time(default) or distance */[DataMember]publicBooleanroundtrip{get;set;}/* Optional Tourtype Rundstrecke oder nur Hinfahrt: true or false(default) */[DataMember]publicBooleantollfree{get;set;}/* Optional Tourparameter Vermeidung von Gebühren: true or false(default) */[DataMember]publicBooleanavoid_highway{get;set;}/* Optional Tourparameter Vermeidung von Autobahnen: true or false(default) */[DataMember]publicBooleanstart{get;set;}/* Optional Startet automatisch die Routenoptimierung als Hintergrunddienst: true or false(default) */}[DataContract]classwaypoints{[DataMember]publicstringuid{get;set;}/* Optional CRM-uniqueID , unter welchem der Wegpunkt gespeichert ist *//* required */[DataMember]publicaddressaddress;/* Required Adresse */[DataMember]publictimetime;/* Optional Zeitangabe zu dem Wegpunkt* *//* Wenn Name gesetzt wird, dann wird er auch angezeit, sonst wird die id angezeigt */[DataMember]publicstringname{get;set;}/* Optionale Parameter es können Beliebg viele Parameter angefügt werden, sie werden einfach durchgereicht */[DataMember]publicstringentityId{get;set;}}[DataContract]classaddress{[DataMember]publicstringstreet{get;set;}/* Required Ort */[DataMember]publicstringpostcode{get;set;}/* Required Postleitzahl */[DataMember]publicstringlocality{get;set;}/* Required Straße Hausnummer */}[DataContract]classtime{/* Aufenthaltsdauer */[DataMember]publicintduration_of_stay{get;set;}/* Ankuntszeit ISO 8601 Format*/[DataMember]publicstringarrival{get;set;}/* Abfahrtszeit ISO 8601 Format*/[DataMember]publicstringdeparture{get;set;}/* ACHTUNG: Es wird arrival bzw depature vom ersten Datensatz wo sie angegeben sind ausgewertet*//* Wenn arrival und departure angegeben sind, dann wird arrival verwendet */}}