давно меня посещала идея написать прогу, чтоб в файлы она сама чего-нибудь выкладывала...
сегодня появилось время, начал разбираццо... наткнулся на хорошую статью
Взаимодействие с другими сайтами через HTTP (HttpWebRequest и HttpWebResponse) попытался разобраццо...
вот что опера посылает на формум, когда я указав файлы, жму "отправить" (отправил простой текстовый файл)
POST /index.php?action=downloads&d=other HTTP/1.0
User-Agent: Opera/9.23 (Windows NT 5.1; U; ru)
Host: forum.elsite.ru
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Referer: http://forum.elsite.ru/index.php?action=downloads&d=other
Cookie: SMFCookie119172794=a%3A4%3A%7Bi%3A0%3Bs%3A4%3A%222615%22%3Bi%3A1%3Bs%3A40%3A%228625757d34278cee330ab6c6b4c3837f5744ead2%22%3Bi%3A2%3Bi%3A1364583578%3Bi%3A3%3Bi%3A0%3B%7D; PHPSESSID=2f60ebae21b1dc9b9cf868aa9d4fa98a
Cookie2: $Version=1
Proxy-Connection: close
Content-Length: 494
Content-Type: multipart/form-data; boundary=----------MmfN11OfiQhFKaQiB7bxXf
------------MmfN11OfiQhFKaQiB7bxXf
Content-Disposition: form-data; name="dir"
other/
------------MmfN11OfiQhFKaQiB7bxXf
Content-Disposition: form-data; name="userfile"; filename="testxxx.txt"
Content-Type: text/plain
testdada
blablabla =)
end of test data
------------MmfN11OfiQhFKaQiB7bxXf
Content-Disposition: form-data; name="info"
)
------------MmfN11OfiQhFKaQiB7bxXf
Content-Disposition: form-data; name="upload"
------------MmfN11OfiQhFKaQiB7bxXf--
кстати, русские буквы тут куда-то пропадают. например в поле инфо я писал
тест ) - осталась одна скобка - это глюк Fiddler'a ?
что за "------------MmfN11OfiQhFKaQiB7bxXf" - которое повторяется несколько раз
Content-Disposition - это я так понял один из заголовков? тогда почему он несколько раз меняется?
пытался оформить код... на всякий случай, сначала загрузить страницу, а потом, используя куки - пытался отправить данные...
кстати, ща можно выкладывать файлы на форум вообще не залогинившись

' url.Text = "http://forum.elsite.ru/index.php?action=downloads&d=other"
Dim myHttpWebRequest As HttpWebRequest = HttpWebRequest.Create(url.Text)
myHttpWebRequest.Proxy = New WebProxy("127.0.0.1", 8888) ' для Fiddler
myHttpWebRequest.UserAgent = "LEO File Uploader" ' =)
Dim myHttpWebResponse As HttpWebResponse = myHttpWebRequest.GetResponse()
Dim myStreamReader As New StreamReader(myHttpWebResponse.GetResponseStream, Encoding.GetEncoding(1251))
Dim st As String = myStreamReader.ReadToEnd()
Dim sCookies As String = ""
If Not String.IsNullOrEmpty(myHttpWebResponse.Headers("Set-Cookie")) Then
sCookies = myHttpWebResponse.Headers("Set-Cookie")
End If
myHttpWebRequest = HttpWebRequest.Create(url.Text)
myHttpWebRequest.Proxy = New WebProxy("127.0.0.1", 8888)
myHttpWebRequest.Method = "POST"
myHttpWebRequest.Referer = "http://forum.elsite.ru/index.php?action=downloads&d=other"
myHttpWebRequest.UserAgent = "LEO File Uploader"
myHttpWebRequest.ContentType = "multipart/form-data"
'передаем куки, полученные в предыдущем запросе
If Not String.IsNullOrEmpty(sCookies) Then
myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, sCookies)
End If
'ставим False, чтобы не делать автоматический редирект
myHttpWebRequest.AllowAutoRedirect = False
вот... тут все почти как в примерах в статье выше... а как дальше я не знаю

можно например добавить
myHttpWebRequest.Headers.Add("Content-Disposition", "form-data; name=" & Chr(34) & "dir" & Chr(34))
Dim sQueryString As String = "other/"
Dim ByteArr As Byte() = Encoding.GetEncoding(1251).GetBytes(sQueryString)
myHttpWebRequest.ContentLength = ByteArr.Length()
myHttpWebRequest.GetRequestStream().Write(ByteArr, 0, ByteArr.Length)
но тогда уже больше в поток ничего не дописать... как сделать?
маюсь с самого утра...