c# - 通过 C# 应用程序与网络通信?

标签 c# web-services

虽然我可以掌握 .Net 框架和 Windows 应用程序的概念,但我想创建一个应用程序来模拟网站点击并从该页面获取数据/响应时间。我还没有任何网络经验,因为我只是一名大三学生,有人可以向我解释(用英语!!)基本概念或示例,可以帮助我与网站交流的不同方式和类别吗?

最佳答案

你想做什么?

发送请求并获取字符串中的响应以便您可以处理?

HttpWebRequestHttpWebResponse 会起作用

如果您需要通过 TCP/IP、FTP 或 HTTP 之外的其他方式进行连接,那么您需要使用更通用的方法

WebRequestWebResponse

以上4个方法都在System.Net Namespace中

如果您想在 Web 端构建一个您可以使用的服务,那么今天在 .NET 中请选择并使用 WCF (RESTfull style)

希望它能帮助你找到自己的路:)

以使用 HttpWebRequest 和 HttpWebResponse 为例,也许一些代码可以帮助您更好地理解。

案例:发送一个响应到一个URL并得到响应,这就像点击URL并获取点击后所有的HTML代码:

private void btnSendRequest_Click(object sender, EventArgs e)
{
    textBox1.Text = "";
    try
    {
        String queryString = "user=myUser&pwd=myPassword&tel=+123456798&msg=My message";
        byte[] requestByte = Encoding.Default.GetBytes(queryString);

        // build our request
        WebRequest webRequest = WebRequest.Create("http://www.sendFreeSMS.com/");
        webRequest.Method = "POST";
        webRequest.ContentType = "application/xml";
        webRequest.ContentLength = requestByte.Length;

        // create our stram to send
        Stream webDataStream = webRequest.GetRequestStream();
        webDataStream.Write(requestByte, 0, requestByte.Length);

        // get the response from our stream
        WebResponse webResponse = webRequest.GetResponse();
        webDataStream = webResponse.GetResponseStream();

        // convert the result into a String
        StreamReader webResponseSReader = new StreamReader(webDataStream);
        String responseFromServer = webResponseSReader.ReadToEnd().Replace("\n", "").Replace("\t", "");

        // close everything
        webResponseSReader.Close();
        webResponse.Close();
        webDataStream.Close();

        // You now have the HTML in the responseFromServer variable, use it :)
        textBox1.Text = responseFromServer;
    }
    catch (Exception ex)
    {
        textBox1.Text = ex.Message;
    }
}

该代码不起作用,因为 URL 是虚构的,但您明白了。 :)

关于c# - 通过 C# 应用程序与网络通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/449910/

相关文章:

c# - 仅应用程序洞察日志异常

web-services - 如何添加单独的 Web 部署描述符?

java - 将捕获的图像发送到android中的web服务器

c# - LINQ 自定义排序

c# - 如何使用 DropDownList 的 SelectedIndexChanged 事件

C# XML LINQ 搜索

c# - 是否可以在一个类中实现多个 IEnumerable<T> ?

web-services - 尝试使用ironpython和soap调用Web服务

java - IntelliJ 抛出 Java.Net.SocketException : unable to open debugger, "socket closed"

asp.net - 使用来自 asp.net webservice 的 jquery 解析简单的 xml