POST запрос, нужен наглядный пример - C#

Узнай цену своей работы

Формулировка задачи:

Весь день сижу и читаю тысячи тем про пост запросы, так и не увидел вообще ни одного ответа где бы было хоть какое то описание как собрать пост запрос. То что все копипастят с других сайтов шаблоны без данных вообще ниочем не говорят, так как не понятно что в какие параметры подставлять и самое главное непонятно пост запрос вообще отправлен или нет, тоесть сервер принял его или нет? вот что видит фидлер, это пример на первой попавшейся ссылке
Листинг программы
  1. POST http://www.avito.ru/items/abuse/ufa_kvartiry_3-k_kvartira_65_m_257979174 HTTP/1.1
  2. Host: www.avito.ru
  3. User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
  4. Accept: */*
  5. Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
  6. Accept-Encoding: gzip, deflate
  7. Content-Type: application/x-www-form-urlencoded; charset=UTF-8
  8. X-Requested-With: XMLHttpRequest
  9. Referer: http://www.avito.ru/ufa/kvartiry/3-k_kvartira_65_m_257979174
  10. Content-Length: 9
  11. 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
  12. Connection: keep-alive
  13. Pragma: no-cache
  14. Cache-Control: no-cache
  15.  
  16. typeId=71
  17. HTTP/1.1 200 OK
  18. Server: nginx
  19. Date: Wed, 25 Dec 2013 08:20:59 GMT
  20. Content-Type: application/json; charset=utf-8
  21. Transfer-Encoding: chunked
  22. Connection: keep-alive
  23. Keep-Alive: timeout=15
  24. Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  25. Set-Cookie: v=1387959777; expires=Wed, 25-Dec-2013 08:53:41 GMT; Max-Age=1800; path=/; domain=.avito.ru
  26. Content-Encoding: gzip
  27. X-Frame-Options: SAMEORIGIN
  28.  
  29. 1a
  30. ‹ SJЙПKU jт{
  31. 0
вот примеры с миллионов сайтов и форумов
Листинг программы
  1. HttpWebRequest r =
  2. WebRequest.Create("http://localhost:50781/AdvWksSalesS.svc/Address")
  3. as HttpWebRequest;
  4. DateTime creationDate = DateTime.Now;
  5. // Convert the date to JSON format.
  6. long ticks = (creationDate.ToUniversalTime().Ticks -
  7. (new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).Ticks) / 10000;
  8. Int32 stateProvinceId = 79;
  9. Guid rowGuid = Guid.NewGuid();
  10. // __metadata is only required if inheritance is used.
  11. string requestPayload = "{__metadata:{Uri:'/Address/', " +
  12. "Type:'AdventureWorksModel.Address'}, " +
  13. "AddressLine1:'703 NW 170th St.', " +
  14. "City:'Kirkland', StateProvinceID:" +
  15. stateProvinceId.ToString() +
  16. ", PostalCode:'98021', rowguid:'" +
  17. rowGuid.ToString() +
  18. "', ModifiedDate:'\\/Date(" + ticks + ")\\/'}";
  19. r.Method = "POST";
  20. UTF8Encoding encoding = new UTF8Encoding();
  21. r.ContentLength = encoding.GetByteCount(requestPayload);
  22. r.Credentials = CredentialCache.DefaultCredentials;
  23. r.Accept = "application/json";
  24. r.ContentType = "application/json";
  25. //Write the payload to the request body.
  26. using ( Stream requestStream = r.GetRequestStream())
  27. {
  28. requestStream.Write(encoding.GetBytes(requestPayload), 0,
  29. encoding.GetByteCount(requestPayload));
  30. }
  31. try
  32. {
  33. HttpWebResponse response = r.GetResponse() as HttpWebResponse;
  34. string responseBody = "";
  35. using (Stream rspStm = response.GetResponseStream())
  36. {
  37. using (StreamReader reader = new StreamReader(rspStm))
  38. {
  39. textBoxResponse.Text = textBoxResponse.Text +
  40. "Response Description: " + response.StatusDescription;
  41. textBoxResponse.Text = textBoxResponse.Text +
  42. "Response Status Code: " + response.StatusCode;
  43. textBoxResponse.Text = textBoxResponse.Text + "\r\n\r\n";
  44. responseBody = reader.ReadToEnd();
  45. }
  46. }
  47. textBoxResponse.Text = "Success: " + response.StatusCode.ToString();
  48. }
  49. catch (System.Net.WebException ex)
  50. {
  51. textBoxResponse.Text = textBoxResponse.Text +
  52. "Exception message: " + ex.Message;
  53. textBoxResponse.Text = textBoxResponse.Text +
  54. "\r\nResponse Status Code: " + ex.Status;
  55. textBoxResponse.Text = textBoxResponse.Text + "\r\n\r\n";
  56. // get error details sent from the server
  57. StreamReader reader = new StreamReader(ex.Response.GetResponseStream());
  58. textBoxResponse.Text = textBoxResponse.Text + reader.ReadToEnd();
  59. }
Листинг программы
  1. using System;
  2. using System.IO;
  3. using System.Net;
  4. using System.Text;
  5. namespace Examples.System.Net
  6. {
  7. public class WebRequestPostExample
  8. {
  9. public static void Main ()
  10. {
  11. WebRequest request = WebRequest.Create ("http://www.contoso.com/PostAccepter.aspx ");
  12. request.Method = "POST";
  13. string postData = "This is a test that posts this string to a Web server.";
  14. byte[] byteArray = Encoding.UTF8.GetBytes (postData);
  15. request.ContentType = "application/x-www-form-urlencoded";
  16. request.ContentLength = byteArray.Length;
  17. Stream dataStream = request.GetRequestStream ();
  18. dataStream.Write (byteArray, 0, byteArray.Length);
  19. dataStream.Close ();
  20. WebResponse response = request.GetResponse ();
  21. Console.WriteLine (((HttpWebResponse)response).StatusDescription);
  22. dataStream = response.GetResponseStream ();
  23. StreamReader reader = new StreamReader (dataStream);
  24. string responseFromServer = reader.ReadToEnd ();
  25. Console.WriteLine (responseFromServer);
  26. reader.Close ();
  27. dataStream.Close ();
  28. response.Close ();
  29. }
  30. }
  31. }
Листинг программы
  1. public static HttpWebResponse PostMethod(string postedData, string postUrl)
  2. {
  3. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(postUrl);
  4. request.Method = "POST";
  5. request.Credentials = CredentialCache.DefaultCredentials;
  6. UTF8Encoding encoding = new UTF8Encoding();
  7. var bytes = encoding.GetBytes(postedData);
  8. request.ContentType = "application/x-www-form-urlencoded";
  9. request.ContentLength = bytes.Length;
  10. using (var newStream = request.GetRequestStream())
  11. {
  12. newStream.Write(bytes, 0, bytes.Length);
  13. newStream.Close();
  14. }
  15. return (HttpWebResponse)request.GetResponse();
  16. }
какой из этих примеров является подходящим для моей задачи. Главное чтобы в запросе были куки, я так понимаю судя по запросу... Ткните пальцем какой нужен, а как заполнить попробую сам разобраться или другую тему создам с вопросом...

Решение задачи: «POST запрос, нужен наглядный пример»

textual
Листинг программы
  1. POST http://www.avito.ru/items/abuse/1-k_kvartira_38_m_79_et._258104498 HTTP/1.1
  2. Content-Type: application/x-www-form-urlencoded;
  3. Host: www.avito.ru
  4. Content-Length: 9
  5. Expect: 100-continue
  6. Connection: Keep-Alive
  7.  
  8. typeId=71

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут