POST запрос, нужен наглядный пример - C#
Формулировка задачи:
Весь день сижу и читаю тысячи тем про пост запросы, так и не увидел вообще ни одного ответа где бы было хоть какое то описание как собрать пост запрос. То что все копипастят с других сайтов шаблоны без данных вообще ниочем не говорят, так как не понятно что в какие параметры подставлять и самое главное непонятно пост запрос вообще отправлен или нет, тоесть сервер принял его или нет?
вот что видит фидлер, это пример на первой попавшейся ссылке
вот примеры с миллионов сайтов и форумов
какой из этих примеров является подходящим для моей задачи.
Главное чтобы в запросе были куки, я так понимаю судя по запросу...
Ткните пальцем какой нужен, а как заполнить попробую сам разобраться или другую тему создам с вопросом...
POST http://www.avito.ru/items/abuse/ufa_kvartiry_3-k_kvartira_65_m_257979174 HTTP/1.1 Host: www.avito.ru User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 Accept: */* Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded; charset=UTF-8 X-Requested-With: XMLHttpRequest Referer: http://www.avito.ru/ufa/kvartiry/3-k_kvartira_65_m_257979174 Content-Length: 9 Cookie: sessid=2de03c2aa3473307ab8ac2d47494e6ce.1387952223; u=1oa81chz.q4jzgn.ebvxb00ltc; __gads=ID=ccef62ea2ae4d5a5:T=1387952224:S=ALNI_Mbg_CJMvOSWF0bqAZy_IVcCcAG0kg; __utma=99926606.1454440257.1387952231.1387952231.1387959783.2; __utmz=99926606.1387952231.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); v=1387959777; __utmb=99926606.9.9.1387959816357; __utmc=99926606; avito_ef_contacter=1 Connection: keep-alive Pragma: no-cache Cache-Control: no-cache typeId=71 HTTP/1.1 200 OK Server: nginx Date: Wed, 25 Dec 2013 08:20:59 GMT Content-Type: application/json; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Keep-Alive: timeout=15 Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Set-Cookie: v=1387959777; expires=Wed, 25-Dec-2013 08:53:41 GMT; Max-Age=1800; path=/; domain=.avito.ru Content-Encoding: gzip X-Frame-Options: SAMEORIGIN 1a ‹ SJЙПKU jт{ 0
HttpWebRequest r = WebRequest.Create("http://localhost:50781/AdvWksSalesS.svc/Address") as HttpWebRequest; DateTime creationDate = DateTime.Now; // Convert the date to JSON format. long ticks = (creationDate.ToUniversalTime().Ticks - (new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).Ticks) / 10000; Int32 stateProvinceId = 79; Guid rowGuid = Guid.NewGuid(); // __metadata is only required if inheritance is used. string requestPayload = "{__metadata:{Uri:'/Address/', " + "Type:'AdventureWorksModel.Address'}, " + "AddressLine1:'703 NW 170th St.', " + "City:'Kirkland', StateProvinceID:" + stateProvinceId.ToString() + ", PostalCode:'98021', rowguid:'" + rowGuid.ToString() + "', ModifiedDate:'\\/Date(" + ticks + ")\\/'}"; r.Method = "POST"; UTF8Encoding encoding = new UTF8Encoding(); r.ContentLength = encoding.GetByteCount(requestPayload); r.Credentials = CredentialCache.DefaultCredentials; r.Accept = "application/json"; r.ContentType = "application/json"; //Write the payload to the request body. using ( Stream requestStream = r.GetRequestStream()) { requestStream.Write(encoding.GetBytes(requestPayload), 0, encoding.GetByteCount(requestPayload)); } try { HttpWebResponse response = r.GetResponse() as HttpWebResponse; string responseBody = ""; using (Stream rspStm = response.GetResponseStream()) { using (StreamReader reader = new StreamReader(rspStm)) { textBoxResponse.Text = textBoxResponse.Text + "Response Description: " + response.StatusDescription; textBoxResponse.Text = textBoxResponse.Text + "Response Status Code: " + response.StatusCode; textBoxResponse.Text = textBoxResponse.Text + "\r\n\r\n"; responseBody = reader.ReadToEnd(); } } textBoxResponse.Text = "Success: " + response.StatusCode.ToString(); } catch (System.Net.WebException ex) { textBoxResponse.Text = textBoxResponse.Text + "Exception message: " + ex.Message; textBoxResponse.Text = textBoxResponse.Text + "\r\nResponse Status Code: " + ex.Status; textBoxResponse.Text = textBoxResponse.Text + "\r\n\r\n"; // get error details sent from the server StreamReader reader = new StreamReader(ex.Response.GetResponseStream()); textBoxResponse.Text = textBoxResponse.Text + reader.ReadToEnd(); }
using System; using System.IO; using System.Net; using System.Text; namespace Examples.System.Net { public class WebRequestPostExample { public static void Main () { WebRequest request = WebRequest.Create ("http://www.contoso.com/PostAccepter.aspx "); request.Method = "POST"; string postData = "This is a test that posts this string to a Web server."; byte[] byteArray = Encoding.UTF8.GetBytes (postData); request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream (); dataStream.Write (byteArray, 0, byteArray.Length); dataStream.Close (); WebResponse response = request.GetResponse (); Console.WriteLine (((HttpWebResponse)response).StatusDescription); dataStream = response.GetResponseStream (); StreamReader reader = new StreamReader (dataStream); string responseFromServer = reader.ReadToEnd (); Console.WriteLine (responseFromServer); reader.Close (); dataStream.Close (); response.Close (); } } }
public static HttpWebResponse PostMethod(string postedData, string postUrl) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(postUrl); request.Method = "POST"; request.Credentials = CredentialCache.DefaultCredentials; UTF8Encoding encoding = new UTF8Encoding(); var bytes = encoding.GetBytes(postedData); request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = bytes.Length; using (var newStream = request.GetRequestStream()) { newStream.Write(bytes, 0, bytes.Length); newStream.Close(); } return (HttpWebResponse)request.GetResponse(); }
Решение задачи: «POST запрос, нужен наглядный пример»
textual
Листинг программы
POST http://www.avito.ru/items/abuse/1-k_kvartira_38_m_79_et._258104498 HTTP/1.1 Content-Type: application/x-www-form-urlencoded; Host: www.avito.ru Content-Length: 9 Expect: 100-continue Connection: Keep-Alive typeId=71
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д