最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 調(diào)用WCF實(shí)例詳解

 更新時(shí)間:2016年11月26日 11:49:52   投稿:lqh  
這篇文章主要介紹了Android 調(diào)用WCF實(shí)例詳解的相關(guān)資料,這里提供了實(shí)例代碼及實(shí)現(xiàn)效果圖,需要的朋友可以參考下

Android 調(diào)用WCF實(shí)例

1. 構(gòu)建服務(wù)端程序

using System.ServiceModel;

namespace yournamespace
{
  [ServiceContract(Name = "HelloService", Namespace = "http://www.master.haku")]
  public interface IHello
  {
    [OperationContract]
    string SayHello();
  }
}


namespace YourNameSpace
{
  public class YourService  
  {
   public string SayHello(string words)
   {
      return "Hello " + words;
   }
  }
}

2. 構(gòu)建IIS網(wǎng)站宿主

  YourService.svc

<%@ServiceHost Debug="true" Service="YourNameSpace.YourService"%>

  Web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.serviceModel>
  <serviceHostingEnvironment>
   <serviceActivations >
    <add relativeAddress="YourService.svc" service="YourNameSpace.YourService"/>
   </serviceActivations >
  </serviceHostingEnvironment >

  <bindings>
   <basicHttpBinding>
    <binding name="BasicHttpBindingCfg" closeTimeout="00:01:00"
      openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
      bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
      maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647"
      messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
      allowCookies="false">
     <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
       maxBytesPerRead="4096" maxNameTableCharCount="16384" />
     <security mode="None">
      <transport clientCredentialType="None" proxyCredentialType="None"
        realm="" />
      <message clientCredentialType="UserName" algorithmSuite="Default" />
     </security>
    </binding>
   </basicHttpBinding>
  </bindings>
  
  <services>
   <service name="YourNameSpace.YourService" behaviorConfiguration="ServiceBehavior">
    <host>
     <baseAddresses>
      <add baseAddress="http://localhost:59173/YourService"/>
     </baseAddresses>
    </host>
    <endpoint binding="basicHttpBinding" contract="YourNameSpace.你的服務(wù)契約接口">
     <identity>
      <dns value="localhost" />
     </identity>
    </endpoint>
   </service>
  </services>

  <behaviors>
   <serviceBehaviors>
    <behavior name="ServiceBehavior">
     <serviceMetadata httpGetEnabled="true" />
     <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
   </serviceBehaviors>
  </behaviors>
 </system.serviceModel>
 <system.web>
  <compilation debug="true" />
 </system.web>
</configuration>

3. 寄宿服務(wù)

  把網(wǎng)站發(fā)布到web服務(wù)器, 指定網(wǎng)站虛擬目錄指向該目錄

  如果你能夠訪問http://你的IP:端口/虛擬目錄/服務(wù).svc

  那么,恭喜你,你的服務(wù)端成功了! 

4. 使用ksoap2調(diào)用WCF

  去ksoap2官網(wǎng)

  http://code.google.com/p/ksoap2-android/ 下載最新jar

 5. 在Eclipse中新建一個(gè)Java項(xiàng)目,測(cè)試你的服務(wù)

  新建一個(gè)接口, 用于專門讀取WCF返回的SoapObject對(duì)象

  ISoapService



package junit.soap.wcf;

import org.ksoap2.serialization.SoapObject;

public interface ISoapService {
  SoapObject LoadResult();
}


   HelloService



package junit.soap.wcf;

import java.io.IOException;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;

public class HelloService implements ISoapService {
  private static final String NameSpace = "http://www.master.haku";
  private static final String URL = "http://你的服務(wù)器/虛擬目錄/你的服務(wù).svc";
  private static final String SOAP_ACTION = "http://www.master.haku/你的服務(wù)/SayHello";
  private static final String MethodName = "SayHello";
  
  private String words;
  
  public HelloService(String words) {
    this.words = words;
  }
  
  public SoapObject LoadResult() {
    SoapObject soapObject = new SoapObject(NameSpace, MethodName);
    soapObject.addProperty("words", words);
    
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); // 版本
    envelope.bodyOut = soapObject;
    envelope.dotNet = true;
    envelope.setOutputSoapObject(soapObject);
    
    HttpTransportSE trans = new HttpTransportSE(URL);
    trans.debug = true; // 使用調(diào)試功能
    
    try {
      trans.call(SOAP_ACTION, envelope);
      System.out.println("Call Successful!");
    } catch (IOException e) {
      System.out.println("IOException");
      e.printStackTrace();
    } catch (XmlPullParserException e) {
      System.out.println("XmlPullParserException");
      e.printStackTrace();
    }
    
    SoapObject result = (SoapObject) envelope.bodyIn;
    
    return result;
  }
}

  測(cè)試程序

package junit.soap.wcf;

import org.ksoap2.serialization.SoapObject;

public class HelloWcfTest {
  public static void main(String[] args) {
    HelloService service = new HelloService("Master HaKu");
    SoapObject result = service.LoadResult();
    
    System.out.println("WCF返回的數(shù)據(jù)是:" + result.getProperty(0));
  }
}

   經(jīng)過測(cè)試成功

   運(yùn)行結(jié)果:

   Hello Master HaKu

6. Android客戶端測(cè)試

package david.android.wcf;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import org.ksoap2.serialization.SoapObject;

public class AndroidWcfDemoActivity extends Activity {
  private Button mButton1;
  private TextView text;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mButton1 = (Button) findViewById(R.id.myButton1);
    text = (TextView) this.findViewById(R.id.show);

    mButton1.setOnClickListener(new Button.OnClickListener() {
      @Override
      public void onClick(View v) {
        
         HelloService service = new HelloService("Master HaKu");
                SoapObject result = service.LoadResult();

        text.setText("WCF返回的數(shù)據(jù)是:" + result.getProperty(0));
      }
    });
  }
}


7. 最后運(yùn)行結(jié)果

 

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

最新評(píng)論

名山县| 榕江县| 兴文县| 博客| 峡江县| 鲁甸县| 临沭县| 平遥县| 河西区| 滁州市| 庆安县| 如皋市| 札达县| 天柱县| 周口市| 新乡市| 扎鲁特旗| 霸州市| 全椒县| 满洲里市| 汕尾市| 南京市| 万宁市| 灌南县| 西昌市| 衡水市| 平顶山市| 同心县| 龙游县| 湛江市| 西安市| 衡水市| 闵行区| 余干县| 清丰县| 罗甸县| 平泉县| 石首市| 垦利县| 隆子县| 汉阴县|