C#试图"得到"从服务器

时间:2014-11-12 15:44:45

标签: java c# tomcat server

所以我有一个tomcat服务器,我可以成功发送查询,例如...... localhost:8080/AnarchyChatServer/AnarchyChatServlet?message=asdf&sendto=x&sendfrom=y 这将在我的tomcat服务器中运行doGet(),doPost()中没有任何内容 这将简单地在响应BODY中返回asdf x y作为HTML。现在在我的C#中,我正在尝试构建查询字符串并发送消息......

 public string sendMessage(string message)
        {
            string url = "";
            string response = "No server response.";
            using (var wb = new WebClient())
            {
                UriBuilder baseUri = new UriBuilder("localhost:8080/AnarchyChatServer/AnarchyChatServlet");
                message = message.Replace("&", "(AMPERSAND)");
                message = message.Replace("?", "(QUESTIONMARK)");
                string queryToAppend = "message=" + message;

                if (baseUri.Query != null && baseUri.Query.Length > 1)
                    baseUri.Query = baseUri.Query.Substring(1) + "&" + queryToAppend;
                else
                    baseUri.Query = queryToAppend;

                url = baseUri.Uri.ToString();

                queryToAppend = "sendto=" + sending;

                if (baseUri.Query != null && baseUri.Query.Length > 1)
                    baseUri.Query = baseUri.Query.Substring(1) + "&" + queryToAppend;
                else
                    baseUri.Query = queryToAppend;

                url = baseUri.Uri.ToString();

                queryToAppend = "sentfrom=" + account[0];

                if (baseUri.Query != null && baseUri.Query.Length > 1)
                    baseUri.Query = baseUri.Query.Substring(1) + "&" + queryToAppend;
                else
                    baseUri.Query = queryToAppend;

                url = baseUri.Uri.ToString();

                try
                {
                    response = wb.DownloadString(baseUri.Uri);
                }
                catch (System.Net.WebException)
                {

                }
            }
            return response;
        }

忽略可怕的代码重用和诸如此类的东西。基本上,查询构建似乎工作正常,好像我输出“url”它将返回带有查询字符串的正确url,但问题是当我在对服务器进行调用后打印出响应时它只是说“没有服务器响应“因为它是在C#代码的顶部初始化的。基本上我想知道如何查询服务器。任何见解都会有所帮助。

1 个答案:

答案 0 :(得分:4)

你的第一个问题是Uri缺乏协议。试试这个:

UriBuilder baseUri = new UriBuilder("http://localhost:8080/AnarchyChatServer/AnarchyChatServlet");

顺便说一句......要在将来调试这些问题,请使用:

catch (Exception ex)
{   <- breakpoint here

}

并检查ex。或者在Visual Studio中打开抛出的CLR异常并调试代码(或者只是不要吞下异常)。然后你会看到这个:

enter image description here

在调试代码时忽略异常通常不是一个好主意......