Search code examples
c#webrequest

Using C# to get content from URL followed by this error "WebRequest does not contain a definition for GetRespone and ..."


This code comes from Microsoft's documentation. I put this code in a Console app and a Windows Form app separately.

In the Console app, there is an error : “WebRequest does not contain a definition for GetRespone and …”

But in the Windows Form app, there is no error.

I really don't know why this happen. I am a beginner of C#, so this question may be stupid. But I feel very confused. Please explain to me. Thank you!

Below are two screenshots for these two situation:

enter image description here

enter image description here

Here is the code.

using System;
using System.IO;
using System.Net;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a request for the URL.   
            WebRequest request = WebRequest.Create(
              "http://www.contoso.com/default.html");
            // If required by the server, set the credentials.  
            request.Credentials = CredentialCache.DefaultCredentials;
            // Get the response.  
            WebResponse response = request.GetResponse();
            // Display the status.  
            Console.WriteLine(((HttpWebResponse)response).StatusDescription);
            // Get the stream containing content returned by the server.  
            Stream dataStream = response.GetResponseStream();
            // Open the stream using a StreamReader for easy access.  
            StreamReader reader = new StreamReader(dataStream);
            // Read the content.  
            string responseFromServer = reader.ReadToEnd();
            // Display the content.  
            Console.WriteLine(responseFromServer);
            // Clean up the streams and the response.  
            reader.Close();
            response.Close();
        }
    }
}

Solution

  • Steps below made mine successful

    1. New a solution - a Visual C# Console Application in Visual Studio. Name your project something as "ConsoleApp1".
    2. Copy and paste code within main function from the web, to newly generated Main function.
    3. Add below using statements
    using System.Net;
    using System.IO;
    
    1. Run it by press "F5". It's successful. But the window closed as soon as it completes.
    2. For you to see the output result, put a break point at "}" statement to avoid the window to close. Alternatively, you can add below as last C# statement. Then you need to click any key to close the console window.

      Console.ReadKey();

    The output, I got:

    OK
    <html><head><title>Microsoft Corporation</title><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"></meta><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta><meta name="SearchTitle" content="Microsoft.com" scheme=""></meta><meta name="Description" content="Get product information, support, and news from Microsoft." scheme=""></meta><meta name="Title" content="Microsoft.com Home Page" scheme=""></meta><meta name="Keywords" content="Microsoft, product, support, help, training, Office, Windows, software, download, trial, preview, demo,  business, security, update, free, computer, PC, server, search, download, install, news" scheme=""></meta><meta name="SearchDescription" content="Microsoft.com Homepage" scheme=""></meta></head><body><p>Your current User-Agent string appears to be from an automated process, if this is incorrect, please click this link:<a href="http://www.microsoft.com/en/us/default.aspx?redir=true">United States English Microsoft Homepage</a></p></body></html>