简体   繁体   中英

How to get post data and request header

I am not able to get post data and request header from the below code on button click event.. here i have to pass an url and a string as a post data...

now when i click button i should get response header, request header, post data and content of the url... but i am not able to get the request header and post data from the below code... can any one tell me where i am wrong

private void button1_Click(object sender, EventArgs e)
            {

                try
                {

                    string url = txtUrl.Text.Trim();

    //HttpWebRequest WebRequestObject = (HttpWebRequest)WebRequest.Create(url);
                   // string result = null;
                    string postData = "This";
                    ASCIIEncoding ObjASCIIEncoding = new ASCIIEncoding();

                    byte[] fileData = ObjASCIIEncoding.GetBytes(postData);

                    // Create a request using a URL that can receive a post. 
                    WebRequest request = WebRequest.Create(url);
                    // Set the Method property of the request to POST.
                    request.Method = "Post";
                    // Create POST data and convert it to a byte array.    
                    WebHeaderCollection webh = request.Headers;
                    txtRequest.Text = webh.ToString();

                    // Set the ContentType property of the WebRequest.
                    request.ContentType = "application/x-wwww-form-urlencoded";
                    // Set the ContentLength property of the WebRequest.
                    request.ContentLength = fileData.Length;
                    // Get the request stream.
                    Stream dataStream = request.GetRequestStream();
                   // StreamReader r = new StreamReader(dataStream);
                   // string p = r.ReadToEnd();
                    // Write the data to the request stream.
                    dataStream.Write(fileData, 0, fileData.Length);
                    // Close the Stream object.
                    dataStream.Close();
                     //Get the response.

                    request.Credentials = CredentialCache.DefaultCredentials;
                 //   HttpWebResponse Response = (HttpWebResponse)WebRequestObject.GetResponse();

                    WebResponse Response = request.GetResponse();
                   // HttpStatusCode code = Response.StatusCode;
                    //txtStatus.Text = code.ToString();
                   txtResponse.Text = Response.Headers.ToString();
                    // Open data stream:
                    Stream WebStream = Response.GetResponseStream();

                    // Create reader object:
                    StreamReader Reader = new StreamReader(WebStream);

                    // Read the entire stream content:

                    txtContent.Text = Reader.ReadToEnd(); 
                    // Cleanup
                    Reader.Close();
                    WebStream.Close();
                    Response.Close();



                    //  var request = WebRequest.Create("http://www.livescore.com ");
                    //var response = request.GetResponse();
                }
                catch(Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }

This should get the header keys and values, remember that each key has an array of values:

Request Headers

To add a header call the Add method:

    WebRequest request = WebRequest.Create("http://www.google.com");
    request.Method = "GET";
    request.Headers.Add("MyTestHeader", "My Test Header Value");

    foreach (var headerKey in request.Headers.Keys)
    {
        var headerValues = request.Headers.GetValues(headerKey.ToString());
        Trace.TraceInformation("Request Header:{0}, Value:{1}", headerKey, String.Join(";", headerValues));
    }

Response Headers

    using (WebResponse response = request.GetResponse())
    {
        foreach (var headerKey in response.Headers.Keys)
        {
            var headerValues = response.Headers.GetValues(headerKey.ToString());
            Trace.TraceInformation("Response Header: {0}, Value: {1}", headerKey, String.Join(";",headerValues));
        }
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM