iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android 调用WCF实例详解
  • 789
分享到

Android 调用WCF实例详解

wcfAndroid 2022-06-06 05:06:48 789人浏览 薄情痞子
摘要

Android 调用WCF实例 1. 构建服务端程序 using System.ServiceModel; namespace yournamespace { [Ser

Android 调用WCF实例

1. 构建服务端程序


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. 构建IIS网站宿主

  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.你的服务契约接口">
     <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. 寄宿服务

  把网站发布到web服务器, 指定网站虚拟目录指向该目录

  如果你能够访问http://你的IP:端口/虚拟目录/服务.svc

  那么,恭喜你,你的服务端成功了! 

4. 使用ksoap2调用WCF

  去ksoap2官网

  http://code.google.com/p/ksoap2-Android/ 下载最新jar

 5. 在Eclipse中新建一个Java项目,测试你的服务

  新建一个接口, 用于专门读取WCF返回的SoapObject对象

  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://你的服务器/虚拟目录/你的服务.svc";
  private static final String SOAP_ACTION = "http://www.master.haku/你的服务/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; // 使用调试功能
    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返回的数据是:" + result.getProperty(0));
  }
}

   经过测试成功

   运行结果:

   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;
  
  @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返回的数据是:" + result.getProperty(0));
      }
    });
  }
}

7. 最后运行结果

 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

您可能感兴趣的文章:六款值得推荐的android(安卓)开源框架简介Android应用开发SharedPreferences存储数据的使用方法android TextView设置中文字体加粗实现方法Android 动画之TranslateAnimation应用详解Android Bitmap详细介绍android压力测试命令monkey详解android PopupWindow 和 Activity弹出窗口实现方式android客户端从服务器端获取JSON数据并解析的实现代码解决Android SDK下载和更新失败的方法详解android listview优化几种写法详细介绍Android 动画之ScaleAnimation应用详解


--结束END--

本文标题: Android 调用WCF实例详解

本文链接: https://www.lsjlt.com/news/23121.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • WCF回调返回值实例分析
    这篇文章主要介绍“WCF回调返回值实例分析”,在日常操作中,相信很多人在WCF回调返回值实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”WCF回调返回值实例分析”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • Android startActivityForResult实例详解
    Android startActivityForResult实例详解startActivityForResult用于两个activity之间的数据传递,Activity1传值给Activity2,Activity2再返回值给Activity...
    99+
    2023-05-31
    android startactivityforresult art
  • jQuery中怎么实现调用WCF
    这期内容当中小编将会给大家带来有关jQuery中怎么实现调用WCF,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、我们首先建好一个项目,在VS2010中,建立好一个We...
    99+
    2024-04-02
  • 如何实现WCF异步调用
    小编给大家分享一下如何实现WCF异步调用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!原来上网我下了很多WCF异步调用Demo。而我用的是VS2005,我在使用这...
    99+
    2023-06-17
  • WCF如何实现异步调用
    这篇文章主要为大家展示了“WCF如何实现异步调用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“WCF如何实现异步调用”这篇文章吧。异步调用是编程中不可缺少的,在工作中积累一点经验,现在我们里关注...
    99+
    2023-06-17
  • Android ProgressDialog的实例详解
    Android ProgressDialog的实例详解当自己做一些耗时操作时,希望给用户一些提示信息,告诉用户正在进行耗时操作,这时就可以用到ProgressDialog。1.新建一个全局变量ProgressDialogprivate Pr...
    99+
    2023-05-30
    android progressdialog gr
  • python调用wcf服务 实现网
    实现目标: 1.创建一个WCF服务,用于读卡。 再创建一个winform客户端程序,作为WCF的宿主。 WCF服务以 IP+端口的形式对外提供服务。 2.python中安装suds,用于解析 WCF的服务地址。 winfo...
    99+
    2023-01-31
    python wcf
  • java ThreadPoolExecutor 并发调用实例详解
    java ThreadPoolExecutor 并发调用实例详解概述通常为了提供任务的处理速度,会使用一些并发模型,ThreadPoolExecutor中的invokeAll便是一种。代码package test.current;impor...
    99+
    2023-05-31
    java threadpoolexecutor 并发调用
  • Android跨应用启动实例详解
    Android跨应用启动前言:相信大家,很多时候都是在自己的应用中,启动自己写的Activity,Service、BroadcastReceiver、contentProvider 。换句话说,这些都只是 * 单个应用中 组件间 * 的启动...
    99+
    2023-05-31
    android 跨应用 roi
  • Android PhotoView使用步骤实例详解
    Android PhotoView使用步骤实例详解步骤一:在布局文件中的代码:<uk.co.senab.photoview.PhotoView android:id="@+id/img_showimgview" andro...
    99+
    2023-05-31
    android photoview roi
  • Android TextView Marquee的应用实例详解
    Android TextView Marquee的应用实例详解亲测可能。直接上代码。 Xml代码<TextView android:id="@+id/toolbar_title" android:layout_width="m...
    99+
    2023-05-30
    android textview marquee
  • Android之ImageSwitcher的实例详解
    Android之ImageSwitcher的实例详解一. 简单示例实例代码:public class AndroidUIActivity extends Activity { // 当前显示的图片索引 private int in...
    99+
    2023-05-30
    android imageswitcher age
  • Android ViewFlipper的详解及实例
    Android ViewFlipper的详解前言:View Flipper,是ViewAnimator的子类,而ViewAnimator又是继承自FrameLayout,而FrameLayout就是平时基本上只显示一个子视图的布局,由于Fr...
    99+
    2023-05-30
    android viewflipper pp
  • Android WebView的详解及实例
    Android WebView的详解      Android WebView在android平台上是一个特殊的View, 他能用来显示网页,这个类可以被用来在你的app中仅仅显示一张在线的...
    99+
    2023-05-30
    android webview roi
  • WCF中怎么实现异步调用
    这篇文章将为大家详细讲解有关WCF中怎么实现异步调用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。随着时代的发展,异步调用在编程中是不可缺少的,这里就关于WCF异步调用简单的和大家分享一下吧...
    99+
    2023-06-17
  • Apache Cordova Android原理应用实例详解
    目录前言技术选型技术原理1. 如何本地加载url对应的资源2. webview如何使用js调用app原生api3. app原生api如何回调webview中的js4. 多个plugi...
    99+
    2022-11-13
    Apache Cordova Android Apache Cordova
  • java回调机制实例详解
    java回调机制实例详解以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中...
    99+
    2023-05-31
    java 回调机制 ava
  • Android 中SQLite技术实例详解
    Android和iOS的数据库都是用SQLite来实现.一,SQLite数据库简介:轻量级:SQLite数据库是一个轻量级的数据库,适用于少量数据的CURD;文件本质:SQLite数据库支持大部分SQL语法,允许使用SQL语句操作数据库,其...
    99+
    2023-05-31
    android sqlite lite
  • Android AlertDialog(对话框)实例详解
    目录1.创建AlertDialog1.1 布局文件代码如下:1.2 MainActivity的主要代码如下所示:2.普通提示对话框3.普通列表对话框4.单选对话框4、复选对话框6、自...
    99+
    2024-04-02
  • Android ViewPagerIndicator详解及实例代码
    Android ViewPagerIndicator详解及实例代码关于自定义View的属性零碎知识自定义View和自定义属性的知识不再此提及,这里着重说的是属性在自定义View中的获取方式,自定义的属性如下:<?xml ver...
    99+
    2023-05-31
    android viewpagerindicator age
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作