Code: -----------------------------41184676334 Content-Disposition: form-data; name="act" do_add -----------------------------41184676334 Content-Disposition: form-data; name="id" 97765262 -----------------------------41184676334 Content-Disposition: form-data; name="aid" 97765262 -----------------------------41184676334 Content-Disposition: form-data; name="gid" 0 -----------------------------41184676334 Content-Disposition: form-data; name="mid" МОЙ ИД -----------------------------41184676334 Content-Disposition: form-data; name="hash" aabd78197a1275d3f842bec07ea30cd0 -----------------------------41184676334 Content-Disposition: form-data; name="vk" -----------------------------41184676334 Content-Disposition: form-data; name="rhash" 446a93d649db47826015641f7c951c3d -----------------------------41184676334 Content-Disposition: form-data; name="file1"; filename="1.png" Content-Type: image/png ‰PNG ..код картинки.. -----------------------------41184676334 Content-Disposition: form-data; name="file2"; filename="" Content-Type: application/octet-stream -----------------------------41184676334 Content-Disposition: form-data; name="file3"; filename="" Content-Type: application/octet-stream -----------------------------41184676334-- и код которым отправляю Code: string accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; string charset = "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7"; string user_agent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8 GTBDFff GTB7.0"; System.Net.ServicePointManager.Expect100Continue = false; req = (HttpWebRequest)HttpWebRequest.Create(Url); req.ReadWriteTimeout = int.MaxValue; req.Accept = accept; req.Headers.Add(charset); req.UserAgent = user_agent; req.CookieContainer = cooks; req.AllowAutoRedirect = false; req.Referer = reffer; if(null != ContentType) req.ContentType = ContentType; if (null != SendData) { req.ContentLength = SendData.Length; req.Method = WebRequestMethods.Http.Post; Stream DataWriter = req.GetRequestStream(); DataWriter.Write(SendData, 0, SendData.Length); DataWriter.Close(); } StreamReader DataReader = new StreamReader(req.GetResponse().GetResponseStream()); string ret = DataReader.ReadToEnd(); DataReader.Close(); return ret; выдает ошибку Security Breach2. что не так делаю?
А после PNG закрывающий boundary отправляешь? И кстати в ContentType должно на 2 дефиса меньше быть, и у закрывающего boundary на два больше после.
скорее всего не на тот сервер грузишь. врядли конечно, но всёже проверь, правильно ли данные парсятся со страницы.
Ну по априори Security Breach2 - нарушения безопасности, стало быть что то не отсылаешь на сервер, или отсылаешь не в том формате. Попробую сначала отправить браузером и тщательно посмотри в снифере что он отправляет.
перепроверил все нормально.. то что это с безопасностью я понимаю. куки думаю нормально. формат данных тоже нормальные, а вот сама картинка меня настораживает, может по другому надо как то её в байты переводить.
1; везде делаете одну и туже ошибку. Люди, если видите параметр hash, то его нужно раскодировать! Однако стоит не снифать, а смотреть сорс страницы. Там указанны ткие-же параметры. просто в снифере будет так (не вру, убежден на собственном опыте): Code: id=12345 msg=ololo! title=11!!1!1 hash=f12344a234345b556e1 а в исходном коде страницы будет к примеру так: Code: msg: msg_text.value; title: title_text.value; id: 12345; hash: [b][color=red]DecodeHash('f12344a234345b556e1');[/b][/color] вот и думай, что за хрень. Я так 2 часа голову ломал, пока не понял, в чем дело и потратил еще около часа, что бы раскодировать хэш. В общем думайте сами. Вывод сам напрашивается: что самый простой способ - самый надежный. 2; и у последней строчки должно быть на 2 дефиса больше в начале: Code: [color=red]--[/color][color=yellow]---------------------------41184676334--[/color] --------------------- К Прочтению: Wikipedia: HTTP Wikipedia: Multipart/form-data Forum Antichat: раскодировка хэша (сразу переход на пост) [delphi]
Хм, очень интересно, а в каком нибудь нормативном документе это описано, в RFC 2388 этого нет(как и в приведенных линках), более того ни опера, фаерфокс, ослик этого не делают.
interpUten, признаю свое поражение) ты верно сказал ))) и красиво )) ну что вы хотите от человека, который тока встал и тока начал кофе пить?)) UPD: кстати статью про Multipart form-data писал я. Может там есть ошибки? если что исправьте)) сории за офтоп(
а ещё признай что не всегда нужно раскодировать hash. может в картинках и надо ( хотя я опять проверил не увиде разные хеши) но точно могу сказать при отправке сообщений в заметки, этого делать не нужно. з.ы так и не чего не получилось