创建一个Web服务

时间:2012-08-13 12:42:32

标签: web-services mono xamarin.android

如何使用Mono For Android创建网络服务?似乎所有事情都是关于使用Web服务,而不是创建一个。

我尝试过使用此功能:http://www.mono-project.com/Writing_a_WebService

但是System.Web.Services.WebService不存在。 System.ServiceModel尚未翻译。有没有人有关于如何在Mono For Android上创建网络服务的线索?

由于

1 个答案:

答案 0 :(得分:0)

我现在尝试实现以下代码并尝试在模拟器中运行它,但是我通过浏览器或通过REST客户端发出的请求永远不会到达HandleRequest。

protected override void OnCreate(Bundle bundle) {
    base.OnCreate(bundle);

    // Set our view from the "main" layout resource
    SetContentView(Resource.Layout.Main);

    var startBtn = FindViewById<Button>(Resource.Id.StartBtn);
    stopBtn.Clickable = false;

    startBtn.Click += SetupListener;
}

private void SetupListener(object sender, EventArgs e) {
    _httpListener = new HttpListener();
    _httpListener.Prefixes.Add("http://*:9876/");
    _httpListener.Start();
    _httpListener.BeginGetContext(HandleRequest, _httpListener);
}

private void HandleRequest(IAsyncResult result) {
    var context = _httpListener.EndGetContext(result);
    var response = "<html>Hello World</html>";
    var buffer = Encoding.UTF8.GetBytes(response);

    context.Response.ContentLength64 = buffer.Length;
    context.Response.OutputStream.Write(buffer, 0, buffer.Length);
    context.Response.OutputStream.Close();

    _httpListener.BeginGetContext(HandleRequest, _httpListener);
}

我尝试过如下的请求:http:// localhost:9876 /,http:// 10.1.1.190:9876 /和http:// 10.0.2.2:9876/但是它们都没有真正进入应用