如何为Android客户端实现HttpGet?

时间:2014-12-17 16:07:25

标签: c# android asp.net api

我正在开发客户端 - 服务器应用程序。服务器端是asp.net web api。我做了简单的web api应用程序和简单的android客户端。当我设置web api时,它有效。我得到了json。但我如何从我的clietn应用程序中获取数据?我连接了我的Android设备并试图通过我的网络API从WI-FI获取数据。对于web api,我创建了一个seld hosting。

       protected Boolean doInBackground(String... urls) {
        BufferedReader in = null;
        try {
            HttpClient client = new DefaultHttpClient();
            HttpGet request = new HttpGet("http://124.18.240.169:3890/api/values/1/");
            HttpResponse response = client.execute(request);
            in = new BufferedReader(
                    new InputStreamReader(
                            response.getEntity().getContent()));

            StringBuffer sb = new StringBuffer("");
            String line = "";
            String NL = System.getProperty("line.separator");
            while ((line = in.readLine()) != null) {
                sb.append(line + NL);
            }
            in.close();

            String page = sb.toString();
            System.out.println(page);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return true;
    }

这是我的网络API         static void Main(string [] args)         {

        var config = new HttpSelfHostConfiguration("http://124.18.240.169:3890");

        config.Routes.MapHttpRoute(
            "API Default", "api/{controller}/{id}",
            new { id = RouteParameter.Optional });

        using (HttpSelfHostServer server = new HttpSelfHostServer(config))
        {
            server.OpenAsync().Wait();
            Console.WriteLine("Press Enter to quit.");
            Console.ReadLine();
        }
    }
    where 
    124.18.240.160 is my IP whcih i found  in ipconfig. What I should to do (I tried to do like
    http://localhost) but it not wrok for Android app

1 个答案:

答案 0 :(得分:0)

您应该考虑使用库来帮助处理异步回调。这对此非常有帮助。

这是我经常使用的那个:

<强> LoopJ's Async HTTP Callback Library

这将处理GET和POST请求,具有许多很酷的功能,如自定义超时,JSON格式,onSuccess()和onFailure()方法等。这个库也有很多工作示例。我已经在我的所有应用程序中使用它并且还没有任何问题!

希望这有帮助。