C#做一个win from的程序, 去请求一个java的servlet,获得到数据用来填充到winform里的comboBox里。

对C# 不是很了解, 今天突然告诉我有这个需求, 求大手帮帮忙。

这个winfrom里有一个下拉列表, 但是这些数据在一个java的项目里, 这个该怎么办 ?
人一直在, 求帮助。。

第1个回答  2012-03-27
你的java项目既然有servlet肯定也可以放jsp
先用jsp请求servlet 把返回的数据读取到jsp页面中
然后再用winform技术读取到jsp,返回IO流
最后解析流就可以了
我说的有点复杂,实际操作的话winform直接访问servlet其实就可以
Winform里面用WebClient、HttpClient、WebBrowser其中一个都能实现
希望能帮到你!
第2个回答  2012-03-27
这个too easy啊,用HttpWebRequest类模拟HTTP请求即可得到数据,这个类好像在System.Web包下。至于后面的填充,无非是GUI对象操作呗。追问

方便不方便做个小例子, 示意一下就好,用winfrom 去请求 servlet 的Request, 得到数据,代码怎么写, 用HttpWebRequest 怎么去得到呢 ?

追答

private void cmdGo_Click(object sender, System.EventArgs e)
{
// *** Establish request by assigning Url
HttpWebRequest loHttp = (HttpWebRequest) WebRequest.Create(this.txtUrl.Text.TrimEnd());

// *** Set any header related and operational properties
loHttp.Timeout = 10000; // 10 secs
loHttp.UserAgent = "Code Sample Web Client";

// *** reuse cookies if available
loHttp.CookieContainer = new CookieContainer();

if (this.oCookies != null && this.oCookies.Count > 0)
{
loHttp.CookieContainer.Add(this.oCookies);
}

// *** Return the Response data
HttpWebResponse loWebResponse = (HttpWebResponse) loHttp.GetResponse();

// ** If the server returns any cookies
// ** add 'em to our cookies collection
if (loWebResponse.Cookies.Count > 0)
if (this.oCookies == null)
{
this.oCookies = loWebResponse.Cookies;
}
else
{
// ** If we already have cookies update the list
foreach (Cookie oRespCookie in loWebResponse.Cookies)
{
bool bMatch = false;
foreach(Cookie oReqCookie in this.oCookies)
{
if (oReqCookie.Name == oRespCookie.Name)
{
oReqCookie.Value = oRespCookie.Name;
bMatch = true;
break; //
}
}
if (!bMatch)
this.oCookies.Add(oRespCookie);
}
}

Encoding enc = Encoding.GetEncoding(1252); // Windows-1252 or iso-
if (loWebResponse.ContentEncoding.Length > 0)
{
enc = Encoding.GetEncoding(loWebResponse.ContentEncoding);
}

StreamReader loResponseStream =
new StreamReader(loWebResponse.GetResponseStream(),enc);

this.txtHTML.Text = loResponseStream.ReadToEnd();

loResponseStream.Close();
loWebResponse.Close();
}

本回答被提问者采纳
第3个回答  2012-03-27
可不可以在JAVA端做UDP监听,在WinForm下发送UDP广播包,JAVA收到就回一个你要的数据出来。。
相似回答