国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

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

2019-12-12 04:30:28
字體:
供稿:網(wǎng)友

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)目,測試你的服務(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;  }}

  測試程序

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)過測試成功

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

   Hello Master HaKu

6. Android客戶端測試

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ì)本站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永善县| 高邮市| 汪清县| 鄯善县| 醴陵市| 黎城县| 周至县| 什邡市| 巴马| 襄汾县| 丹棱县| 通山县| 全南县| 巴林右旗| 白山市| 克东县| 屏东县| 榆中县| 镇巴县| 沅江市| 仙居县| 竹北市| 辉县市| 阜康市| 灌南县| 山东省| 三门峡市| 乌拉特中旗| 甘德县| 繁昌县| 静乐县| 昌都县| 新蔡县| 枝江市| 凤冈县| 芜湖市| 闻喜县| 奉贤区| 柳河县| 闻喜县| 古蔺县|