Search code examples
c#httpwebrequest

IP address with WebRequest


I have this code which i copied straight from MSDN with small edits:

public void SendWEBRequest(string postData = "nodata")
    {
        // Create a request using a URL that can receive a post. 
        WebRequest request = WebRequest.Create("http://" + RPS.Globals.sIP + RPS.Globals.iPort);
        // Set the Method property of the request to POST.
        request.Method = "POST";
        // Convert postData to byte array
        byte[] byteArray = Encoding.UTF8.GetBytes(postData);
        // Set the ContentType property of the WebRequest.
        request.ContentType = "application/x-www-form-urlencoded";
        // Set the ContentLength property of the WebRequest.
        request.ContentLength = byteArray.Length;
        // Get the request stream.
        Stream dataStream = request.GetRequestStream();
        // Write the data to the request stream.
        dataStream.Write(byteArray, 0, byteArray.Length);
        // Close the Stream object.
        dataStream.Close();
        // Get the response.
        WebResponse response = request.GetResponse();
        // Display the status.
        Console.WriteLine("C>> " + ((HttpWebResponse)response).StatusDescription);
        // Get the stream containing content returned by the server.
        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("C>> " + responseFromServer);
        // Clean up the streams.
        reader.Close();
        dataStream.Close();
        response.Close();
    }

When i run this code i get the error "The remote name could not be resolved: '127.0.0.132684'" how can i use WebRequest with only an IP address and not hostname?


Solution

  • I think that you mixed the IP number with the port number:

    '127.0.0.132684'
    

    Try this instead:

    '127.0.0.1:32684'
    

    Or:

     WebRequest.Create("http://" + RPS.Globals.sIP +":"+ RPS.Globals.iPort);