0

我已经搜索了很长一段时间,对于如何从 windows phone 7 API 调用 java servlet 无法得到任何直接的答案?我已经阅读了有关“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()”需要 2 个参数,即 AsyncCallback 和对象状态。这两个论点是什么,在这种情况下我的论点是什么?

4

2 回答 2

2

我已经阅读了有关“WebClient”和“HttpWebRequest”的信息,但是对于普通的 C# 和 windows phone,实现似乎有所不同。

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

请注意,这与您正在与之交谈的 Web 服务器的实现无关。无论您是在与 Java servlet、Rails 应用程序还是其他任何东西对话,您都将编写相同的代码。

还可能值得一提的是 servlet 返回 JSON。在 C# 中如何处理?

我个人喜欢Json.NET,并在 Windows Phone 7 上成功使用了它。

于 2012-06-20T09:30:12.847 回答
1

这是发出 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));

DownloadStringCompleted 处理程序是,

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);
}

在上面的代码中,SomeObject是您要将 JSON 数据转换为的类。

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

于 2012-06-20T09:39:46.210 回答