zoukankan      html  css  js  c++  java
  • WCF and Android Part I

    Introduction

    The Windows Communication Foundation (WCF) provides a very flexible way of exposing network  interfaces to other applications. For cross platform and inter programming language support basically two technologies can be used. SOAP and REST  services. The SOAP approach provides far more features out of the box but is not really suitable for mobile devices if speed matters. Therefore this article  describes how to create a REST WCF-Webservice which can be consumed on android devices.

    WCF part

    The WCF part is composed of three files, the service contract, the service implementation and the app.config.

    The service contract

    The service contract defines the webservice methods.

    To expose the service via REST, the WegGet attribute is required. It specifies the URL of each method, the serialization format (JSON or XML,  use JSON for fast processing). If the method has parameters they can either be provided using POST (requires another attribute) or they can be provided  by specifying them in the URL as shown in the example. The implementation of this method is straight forward and requires no attributes.

    [ServiceContract()]
    public interface ISecurityService
    {
        [OperationContract()]
        [FaultContract(typeof(WCFFault))]
        [WebGet(UriTemplate="test/{param1}", ResponseFormat=WebMessageFormat.Json)]
        void test(string param1);
    }

    app.config

    The application config associates different services with different endpoints and bindings. This configuration does not use any transport security  or other security mechnisms. For REST services the webHttp behaviour is important.

    <configuration>
    <system.serviceModel>
      <bindings>
       <webHttpBinding>
        <binding
         name="web_http"
         bypassProxyOnLocal="false"
         hostNameComparisonMode="WeakWildcard">          
       </binding>
      </webHttpBinding>
    </bindings>
            
    <behaviors>            
      <serviceBehaviors>
       <behavior name="http_behavior" >
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="true"/>
       </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
       <behavior name="web_behavior">
        <webHttp helpEnabled="True" />
       </behavior>
      </endpointBehaviors>
    </behaviors>
          
    <services>
      <service name="ServiceImpl" behaviorConfiguration="http_behavior">
       <host>
        <baseAddresses>
         <add baseAddress="http://*:18000/my_service" />
        </baseAddresses>
       </host>
       <endpoint
        address="my_service"
        binding="webHttpBinding"
        bindingConfiguration="web_http"
        contract="IService"
        behaviorConfiguration="web_behavior"
       />
       <endpoint contract="IMetadataExchange" 
           binding="mexHttpsBinding" address="mex"/>
      </service>
    </services>
    </system.serviceModel>

    Run the service

    The service can be mounted to an application container (e.g. IIS) or can be self hosted with just a single line of code:

    new WebServiceHost(typeof(MyService)).Open();

    That's it, browse to http://localhost:18000/test/myparam. Next part (coming soon) will describe how to use the service with android.

    原文地址:http://www.codeproject.com/Articles/358867/WCF-and-Android-Part-I#

  • 相关阅读:
    spring是什么?
    检查80端口是否被占用的命令是: netstat -ano | findstr 0.0.0.0:80 或 netstat -ano | findstr "80"
    配置Dubbo 项目遇到的坑---无法读取方案文档 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'
    maven中使用tomcat插件启动,显示build success但无法继续启动的解决方法
    java.io.File类操作
    eclipse将web项目打war包部署到tomcat下
    Mapper.xml中的resultMap
    2.PLSQL编写简单存储过程(传入参数,修改+打印)
    1.PLSQL编写简单存储过程(无参,纯打印)
    select2
  • 原文地址:https://www.cnblogs.com/ttssrs/p/2674041.html
Copyright © 2011-2022 走看看