C# 如何从WindowsPhone7调用Javaservlet

C# 如何从WindowsPhone7调用Javaservlet,c#,json,windows-phone-7,servlets,C#,Json,Windows Phone 7,Servlets,我已经搜索了很长一段时间,对于如何从WindowsPhone7API调用JavaServlet,我找不到任何直接的答案?我读过关于“WebClient”和“HttpWebRequest”的文章,但是对于普通的C#和windows phone来说,它们的实现似乎有所不同 我使用的方法(或者说是空壳)如下所示: public Login(string userName, password){ string servletUrl = "http://172.12.5.35:8080/SomeS

我已经搜索了很长一段时间,对于如何从WindowsPhone7API调用JavaServlet,我找不到任何直接的答案?我读过关于“WebClient”和“HttpWebRequest”的文章,但是对于普通的C#和windows phone来说,它们的实现似乎有所不同

我使用的方法(或者说是空壳)如下所示:

public Login(string userName, password){

   string servletUrl = "http://172.12.5.35:8080/SomeService/login?u="+userName+"&p="+password;

   //Somehow to call the servlet>>

}
我是一名Java编码员,虽然语法几乎相同,但我在这里已经陷入了为windows phone编码的深渊

同样值得一提的是,servlet返回JSON。在C#中如何处理这一点

提前感谢您向正确的方向努力


我尝试使用HttpWebRequest:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(servletUrl);
HttpWebResponse response = (HttpWebRequest)request.BeginGetResponse();
但我看到'BeginGetResponse()'接受两个参数,即AsyncCallback和object state。这两个论点是什么?在这种情况下,我的论点是什么

我读过关于“WebClient”和“HttpWebRequest”的文章,但是对于普通的C#和windows phone来说,它们的实现似乎有所不同

嗯,它不支持同步API,仅此而已。WP7API(和Silverlight)有很多方面,它们是完整桌面框架的子集。您需要异步思考——您将开始发出请求,并在收到响应时发出回调

请注意,这与您正在谈论的web服务器的实现无关。无论您是在与Javaservlet还是Rails应用程序交谈,您都会编写相同的代码

同样值得一提的是,servlet返回JSON。在C#中如何处理这一点

就我个人而言,我喜欢并且已经在WindowsPhone7上成功地使用了它

我读过关于“WebClient”和“HttpWebRequest”的文章,但是对于普通的C#和windows phone来说,它们的实现似乎有所不同

嗯,它不支持同步API,仅此而已。WP7API(和Silverlight)有很多方面,它们是完整桌面框架的子集。您需要异步思考——您将开始发出请求,并在收到响应时发出回调

请注意,这与您正在谈论的web服务器的实现无关。无论您是在与Javaservlet还是Rails应用程序交谈,您都会编写相同的代码

同样值得一提的是,servlet返回JSON。在C#中如何处理这一点


就我个人而言,我喜欢并且已经在Windows Phone 7上成功地使用了它。

下面是一个示例代码,用于发出web请求以获取JSON数据

WebClient client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
client.DownloadStringAsync(new Uri("http://api.twitter.com/1/statuses/public_timeline.json", UriKind.Absolute));
下载的StringCompleted处理程序是

void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    var jsonResponse= e.Result; // To check whether the json response is obtained or not
    var jsonData = JsonConvert.DeserializeObject<SomeObject>(e.Result);
}
void client\u DownloadStringCompleted已完成(对象发送方,DownloadStringCompletedEventArgs e)
{
var jsonResponse=e.Result;//检查是否获得json响应
var jsonData=JsonConvert.DeserializeObject(e.Result);
}
在上面的代码中,
SomeObject
是要将JSON数据转换为的类


此外,将json URL或json数据粘贴到中,以生成适合您的类。

以下是发出web请求以获取json数据的示例代码

WebClient client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
client.DownloadStringAsync(new Uri("http://api.twitter.com/1/statuses/public_timeline.json", UriKind.Absolute));
下载的StringCompleted处理程序是

void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    var jsonResponse= e.Result; // To check whether the json response is obtained or not
    var jsonData = JsonConvert.DeserializeObject<SomeObject>(e.Result);
}
void client\u DownloadStringCompleted已完成(对象发送方,DownloadStringCompletedEventArgs e)
{
var jsonResponse=e.Result;//检查是否获得json响应
var jsonData=JsonConvert.DeserializeObject(e.Result);
}
在上面的代码中,
SomeObject
是要将JSON数据转换为的类


另外,将您的json URL或json数据粘贴到中,以生成适合您的类。

感谢您稍微澄清了一些问题。就我个人而言,如果可能的话,我宁愿使用HttpWebRequest,如果你看看我编辑的帖子,你会看到我关于这个的问题…@DeanGrobler:第一个是回调。第二个是状态,它只是作为一种方便传递给回调。您需要了解委托以创建回调。不过,所有这些都应该通过教程和文档来完成,而不是通过提问来完成。搜索“WebRequest教程silverlight”会获得相当多的点击率。再次感谢。我同意,否则我会整天坐在这里问问题。最后一个问题,你觉得恩钱德拉的回答怎么样?应该行吗?谢谢你把事情弄清楚了Jon。就我个人而言,如果可能的话,我宁愿使用HttpWebRequest,如果你看看我编辑的帖子,你会看到我关于这个的问题…@DeanGrobler:第一个是回调。第二个是状态,它只是作为一种方便传递给回调。您需要了解委托以创建回调。不过,所有这些都应该通过教程和文档来完成,而不是通过提问来完成。搜索“WebRequest教程silverlight”会获得相当多的点击率。再次感谢。我同意,否则我会整天坐在这里问问题。最后一个问题,你觉得恩钱德拉的回答怎么样?应该有效吗?什么是“客户端下载完成”?同样,一旦检索到这个Json,它存储在哪个变量中?如果jsonToCsharp从我返回的Json中生成了2个类呢?JsonConvert是来自的一个类。当它生成两个类时,取父类,我看到的理想名称是RootObjectAh,然后是最后一个问题(我保证)。在我从codeplex下载了json.NET zip文件之后,如何在我的windows phone项目中添加/合并该库没关系,明白了!你最好来这里:)什么是“客户端下载完成”?同样,一旦检索到这个Json,它存储在哪个变量中?如果jsonToCsharp从我返回的Json中生成了2个类呢?JsonConvert是来自的一个类。当它生成两个类时,取父类,我看到的理想名称是RootObjectAh,然后是最后一个问题(我保证)。在我从codeplex下载json.NET zip文件之后,ho