Ik hoop dat iemand hier me kan helpen, ik probeer een NZB bestand te posten naar SABnzbd, dat op cherrypy draait. Ik krijg daar een aantal foutmeldingen uit, en ik wil weten wat er mis gaat in mijn request. Van hun forum heb ik een voorbeeld request gezien, en ik wil mijn data daarmee vergelijken. Een voorbeeld, zoals het eruit zou moeten zien: http://sabnzbd.org/switch/example1.txt
Ik heb echter geen idee hoe ik zo'n request uitlees in C#. Met google kom ik niet verder, is er iemand hier die me kan helpen? Mijn code:
Alvast bedankt!
Ik heb echter geen idee hoe ik zo'n request uitlees in C#. Met google kom ik niet verder, is er iemand hier die me kan helpen? Mijn code:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(uri); webrequest.Method = "POST"; string boundary = "------" + DateTime.Now.Ticks.ToString("x"); webrequest.ContentType = "multipart/form-data; boundary=" + boundary; StringBuilder sb = new StringBuilder(); sb.Append("---"); sb.Append(boundary); sb.Append("\r\n"); sb.Append("Content-Disposition: form-data; name=\"nzbfile\"; filename=\"" + filename + "\";"); sb.Append("\r\n"); sb.Append("Content-Type: text/plain"); sb.Append("\r\n"); sb.Append("\r\n"); byte[] postHeaderBytes = Encoding.ASCII.GetBytes(sb.ToString()); byte[] boundaryBytes = Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n"); FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read); long length = postHeaderBytes.Length + fileStream.Length + boundaryBytes.Length; webrequest.ContentLength = length; Stream requestStream = webrequest.GetRequestStream(); requestStream.Write(postHeaderBytes, 0, postHeaderBytes.Length); byte[] buffer = new Byte[checked((uint)Math.Min(4096, (int)fileStream.Length))]; int bytesread = 0; while ((bytesread = fileStream.Read(buffer, 0, buffer.Length)) != 0) requestStream.Write(buffer, 0, bytesread); requestStream.Write(boundaryBytes, 0, boundaryBytes.Length); WebResponse responce = webrequest.GetResponse(); Stream s = responce.GetResponseStream(); StreamReader sr = new StreamReader(s); MessageBox.Show(sr.ReadToEnd()); |
Alvast bedankt!
It might sound as if I have no clue what I'm doing, but I actually have a vague idea.