0

忙于使用适用于 Windows 手机的 Visual Studio 2010 Express,并且想要调用从我的一个类返回 json 的 servlet。

到目前为止,我有以下方法:

public Login(string userName, string password){

   string servletUrl = "http://172.12.5.35:8080/SomeService/login?u="+userName+"&p="+password;
   HttpWebRequest request = (HttpWebRequest)WebRequest.Create(servletUrl);
   HttpWebResponse response = (HttpWebResponse)request.GetResponse();

}

但是由于某种原因,我在“”方法调用中得到一个错误,GetResponse()说没有这样的方法?有人有什么想法吗?我环顾四周,我的代码对我来说似乎是正确的?

已编辑---------------

public Login(string userName, string password){

   string servletUrl = "http://172.12.5.35:8080/SomeService/login?u="+userName+"&p="+password;
   using(var client = (IDisposable)new WebClient(servletUrl))
   {
        string result = client.DownloadString(servletUrl);

   {

}

但是好像没有DownloadStringWebClient的方法?

4

1 回答 1

3

Windows Phone 7(和一般的 Silverlight)不支持同步 IO。如果您查看Silverlight API 文档,您会发现编译器是完全正确的 -没有方法GetResponse。您需要改用异步BeginGetResponse方法。

或者,使用WebClientwhich 使异步部分更简单 - 当然 C# 5 的异步支持通常会使异步更容易。

编辑:如评论中所述 -DownloadString仍然是同步的,因此 Silverlight 不支持。您想要异步 API,例如DownloadStringAsync.

于 2012-06-20T08:35:54.323 回答