Hej Jag vet ingenting om de där men denna kanske kan vara till hjälp: Tack, men jag har redan kikat på den. Hjälpte inte. Vet inte hur man skall göra servern för att "PUT" skall fungera? Får du ut något error mess? eller bara 500? Visst Ok. Fel hos "dem" tror jag inte. Nu kör jag mot en asp-sida med SAFileUp (det är dock bara för att testa. Senare skall det köras mot en boa...).upload med HttpWebRequest
Jag skulle vilja göra samma sak som WebClient Upload gör fast med HttpWebRequest. Detta för att koden skall vara compact framework kompatibel.
WebClient Kod ********************
WebClient client = new WebClient();
client.UploadFile(Url, "POST", FileToUpload);
********************************
HttpWebRequest kod ***************
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url);
FileInfo finfo = new FileInfo(FileToUpload);
req.Method = "POST";
req.ContentType = "application/octet-stream";
req.ContentLength = finfo.Length;
FileStream fs = File.Open(FileToUpload, FileMode.Open);
byte [] data = new byte[fs.Length];
fs.Read(data, 0, data.Length);
Stream stream = req.GetRequestStream();
stream.Write(data, 0, data.Length);
fs.Close();
stream.Flush();
stream.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
Console.WriteLine(res.ToString());
res.Close();
*********************************************
Jag har även testat med diverse andra headers:********
req.ContentType = "application/octet-stream";
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
req.Headers.Add("Content-Disposition", "form-data");
req.Headers.Add("name", "file");
req.Headers.Add("filename", "file2.zip");
req.AllowWriteStreamBuffering = true;
req.Headers.Add("Content-Encoding: multipart/form-data");
**************************************************
Men jag får hela tiden (500) Internal Server Error
Hjälp!
/peterbladhSv: upload med HttpWebRequest
http://www.opennetcf.org/Forums/topic.asp?TOPIC_ID=515Sv: upload med HttpWebRequest
/peterSv: upload med HttpWebRequest
Jag är nyfiken vad den säger.
Kan du inte köra en try och catch blockrunt samt skriva ut den exception du får tag i?
Har snabb tittat på koden o den ser ok ut. Skall se om jag hinner kika närmare på den lite senare.
JNSv: upload med HttpWebRequest
Det är ett WebException och här får du WebException.ToString och WebException.Status
ToString:
System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
at System.Net.HttpWebRequest.CheckFinalStatus()
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.HttpWebRequest.GetResponse()
at Upload.Class2.Upload() in d:\visual studio projects\upload\class2.cs:line 81
Status:
ProtocolError
(Line 81: HttpWebResponse res = (HttpWebResponse)req.GetResponse();)
/peterSv: upload med HttpWebRequest
Remote server, då är det antagligen hos dem det blir fel. Vad skickar du för data? hur tas den emot? skickar du med otillåtna tecken? etc? Kan vara vad som.
JNSv: upload med HttpWebRequest
Så här ser asp koden ut
<%
Set upl = Server.CreateObject("Softartisans.FileUp")
upl.Path = "D:\temp\"
upl.Save
%>
... och som jag skrev i första inlägget så funkar det fint med System.Net.WebClient
/peter bladh