【发布时间】:2015-01-09 12:53:59
【问题描述】:
所以我有一个 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# 代码的顶部初始化的。基本上我想知道如何查询服务器。任何见解都会有所帮助。
【问题讨论】:
-
你能说得更具体点吗?
-
响应 = wb.DownloadString(baseUri.Uri);没有将响应设置为等于任何值,而是每次我进行此调用时似乎都会发生 System.Net.WebException。网址是正确的,所以一定是我在通话中做错了什么。