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

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


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

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

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