Sheer bloodymindedness J I found a workaround - Just leave out the headers
Don t know what would happen if the server objected to this but in this case it works Strange that adding headers worked in a straightforward c# Windows app but not in Mono for Android The exception code gives some clue that it is in the Mono for android code "- eee {System.Net.WebException: An error occurred performing a WebClient request. ---> System.ArgumentException: This header must be modified with the appropiate property. at System.Net.WebHeaderCollection.Add (System.String name, System.String value) [0x00027] in /home/mkestner/monogit/mono/mcs/class/System/System.Net/WebHeaderCollection. cs:167 at System.Net.HttpWebRequest.set_Headers (System.Net.WebHeaderCollection value) [0x0001b] in /home/mkestner/monogit/mono/mcs/class/System/System.Net/HttpWebRequest.cs:35 3 ...................." I searched the web and in an unrelated article the author seemed to be suggesting that in some circumstances one cannot set headers using the Add method. That led me to eliminate them completely and it worked - let's hear it for the by guess and by god programmers !! If anyone knows more I'd be interested in why the c#/ windows thing works and Mono does not - if only to avoid future pitfalls John Murray From: monodroid-boun...@lists.ximian.com [mailto:monodroid-boun...@lists.ximian.com] On Behalf Of John Murray Sent: 28 August 2011 11:20 To: 'Discussions related to Mono for Android' Subject: [mono-android] simple web client crash Just transported this code from a windows form app testbed - where it is working fine in same VS2010 debugger Can anyone tell me - should I be handling things differently in mandroid? It simply hangs on the line Wc.Uploaddata() and I cant get a clue what's causing it Obviously I've checked connection etc string mystr2 = "<nwx version=\"0.3.5\"><Request id=\"1\"><AvailableEpochs/></Request></nwx>"; WebClient wc = new WebClient(); wc.Headers.Add("Content-Type", "application/xml"); wc.Headers.Add("Pragma", "no-cache"); wc.Headers.Add("Cache-Control", "no-cache"); wc.Headers.Add("Host", "www.navlost.eu"); string ss3 = "http://navlost.eu/nwxs/"; byte[] byteArray = Encoding.ASCII.GetBytes(mystr2); //(mystr2 is a string representation of xml file byte[] responseArray = wc.UploadData(ss3, "POST", byteArray); I'm stumped Any help gratefully solicited John Murray
_______________________________________________ Monodroid mailing list Monodroid@lists.ximian.com UNSUBSCRIBE INFORMATION: http://lists.ximian.com/mailman/listinfo/monodroid