步骤一:用C#声明WCF

   [ServiceContract]
public interface IService1 {
[OperationContract]
void DoWork(); [OperationContract]
string GetData(); [OperationContract]
string GetData2(string msg); [OperationContract]
string GetData3(Order order); [OperationContract]
IList<Order> GetList();
} public class Service1 : IService1 {
public void DoWork() {
}
public string GetData() {
return DateTime.Now.ToString("成功:" + "yyyy-MM-dd");
}
public string GetData2(string msg) {
return DateTime.Now.ToString("成功:" + "yyyy-MM-dd 您输入的内容是:" + msg);
}
public string GetData3(Order order) {
return string.Format("成功:{0},OrderId:{1},Qty:{2}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), order.OrderId, order.Qty);
}
public IList<Order> GetList() {
IList<Order> orders = new List<Order>();
orders.Add(new Order { OrderId = "A001", Qty = });
orders.Add(new Order { OrderId = "A002", Qty = });
orders.Add(new Order { OrderId = "A003", Qty = });
return orders;
}
} public class Order {
public string OrderId { get; set; }
public int Qty { get; set; }
}

步骤二:用PHP调用:

1.PHT调用WCF无参数
<?php
$wcfURL = 'http://192.169.1.100:8090/FPosServer_xncs/r/Service1.svc?wsdl';
$wcfClient = new SoapClient ( $wcfURL );
$result1 = $wcfClient->GetData();
print_r ( $result1 );
?> 2.PHT调用WCF传递一个string参数
<?php
$wcfURL = 'http://192.169.1.100:8090/FPosServer_xncs/r/Service1.svc?wsdl';
$wcfClient = new SoapClient ( $wcfURL );
$args = array('msg' => '312');
$result1 = $wcfClient->GetData2($args);
print_r ( $result1 );
?> 3.PHT调用WCF传递一个对象参数
<?php
$wcfURL = 'http://192.169.1.100:8090/FPosServer_xncs/r/Service1.svc?wsdl';
$wcfClient = new SoapClient ( $wcfURL );
$param = array('OrderId'=>'A001','Qty'=>'1');
$result1=$wcfClient->GetData3(array('order'=>$param));
print_r ( $result1 );
?>

4.Java调用WCF

注意:如果请求的body有中文,一定要加body.getBytes("UTF-8")

public static void main(String[] args) {
try { String method = "AddVip"; // AddVip
String uri = "http://192.168.18.50:8899/Yinger/YingerService?wsdl";
String body = "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body><AddVip xmlns=\"http://tempuri.org/\"><jsonData>{\"Vip\":\"1820000000\",\"VipFrom\":\"APP\",\"Recommend\":\"887061217\",\"ChannelId\":\"5010280001\",\"Name\":\"小花\",\"Phone\":\"182000000\",\"Sex\":\"2\",\"BirthDate\":\"1992-03-02\",\"Address\":\"广东省广州市番禺区\",\"Province\":\"广东省\",\"City\":\"广州市\",\"District\":\"番禺区\",\"Email\":\"86566@qq.com\",\"Level\":\"会员卡\",\"Password\":\"8888888\",\"MemberType\":\"会员\"}</jsonData><appKey>test</appKey><appSecret>123456</appSecret></AddVip></s:Body></s:Envelope>";
System.out.println(body); byte[] data = body.getBytes("UTF-8"); URL url = new URL(uri); System.out.println(uri); HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true); // 设置允许输出
conn.setConnectTimeout( * ); // 设置超时时间为5秒 conn.setReadTimeout( * ); // 设置请求方式
conn.setRequestMethod("POST");
// 设置请求体属性
conn.setRequestProperty("Content-Type", "text/xml;charset=utf-8");
conn.setRequestProperty("SOAPAction", "http://tempuri.org/IYingerService/" + method); // 发送请求的xml文件
OutputStream outputStream = conn.getOutputStream();
outputStream.write(data);
outputStream.flush();
outputStream.close(); int code = conn.getResponseCode();
System.out.println("code:" + code);
if (code == ) {
// 读取服务器返回的消息
InputStream in = conn.getInputStream();
StringBuffer sb = new StringBuffer();
byte[] buf = new byte[];
for (int n; (n = in.read(buf)) != -;) {
sb.append(new String(buf, , n, "utf-8"));
}
in.close();
conn.disconnect();
System.out.println(sb.toString());
}
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}

5.C#调用WCF,用windows身份认证,Clinent代码:

//使用BasicHttpBinding绑定
BasicHttpBinding myBinding = new BasicHttpBinding();
//使用Transport安全模式
myBinding.Security.Mode = BasicHttpSecurityMode.Transport;
//客户端验证为None
myBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
//客户端验证为Basic
//myBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
//客户端验证为Ntlm
//myBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm; //客户端Endpoint地址,指向服务端Endpoint的地址
EndpointAddress ea = new
EndpointAddress("https://win2008/WcfIISHostService/Service1.svc/GetIdentity"); GetIdentityClient gc = new GetIdentityClient(myBinding, ea); //客户端为Basic时,客户端提供用户名和密码
//gc.ClientCredentials.UserName.UserName = "chnking";
//gc.ClientCredentials.UserName.Password = "jjz666"; //执行代理类Get方法
string result = gc.Get(WindowsIdentity.GetCurrent().Name);

6.HttpHelper调用WCF,用windows身份认证:

byte[] bytes = Encoding.Default.GetBytes(UserNo + ":" + Password);

string Auth=Convert.ToBase64String(bytes);

string xml = "";
HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
URL = "http://pidev.XXXX.com:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_F360&receiverParty=&receiverService=&interface=SI_DeliveryIn_Req&interfaceNamespace=urn:F3602SAP:DeliveryIn",//URL 必需项
Method = "post",//URL 可选项 默认为Get
IsToLower = false,//得到的HTML代码是否转成小写 可选项默认转小写
Cookie = "",//字符串Cookie 可选项
Referer = "",//来源URL 可选项
Postdata = xml,//Post数据 可选项GET时不需要写
Timeout = ,//连接超时时间 可选项默认为100000
ReadWriteTimeout = ,//写入Post数据超时时间 可选项默认为30000
UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统 可选项有默认值
ContentType = "text/html",//返回类型 可选项有默认值
Allowautoredirect = false,//是否根据301跳转 可选项
}; //Authorization: Basic RjM2MFBJOmYzNjBhZG1pbjY2
item.Header.Add("Authorization", "Basic RjM2MFBJOmYzNjBhZG1pbjY2"); //此处为base64加密, 明文:F360PI:f360admin66 //SOAPAction: "http://sap.com/xi/WebService/soap1.1"
item.Header.Add("SOAPAction", "http://sap.com/xi/WebService/soap1.1"); HttpResult result = http.GetHtml(item);
string html = result.Html;

7.RestSharp 使用HttpBasicAuthenticator 调用Shopify

 var client = new RestClient("https://developmentsandriver.myshopify.com/")
{
Authenticator = new HttpBasicAuthenticator("8d654c3a8404fc954d6653b100acbxxx", "sss0836672c0c518764506bf2ed3fe82")
}; var request = new RestRequest()
{
Method = Method.GET,
Resource = "admin/products.json",
RequestFormat = DataFormat.Json,
};
var result = client.Execute(request);
var count = result.Content;

PHP&Java 调用C#的WCF的更多相关文章

  1. 用java调用.net的wcf其实还是很简单的

      前些天和我们的一个邮件服务商对接,双方需要进行一些通讯,对方是java团队,而作为.net团队的我们,只能公布出去的是一个wcf的basicbinding,想不 到问题来了,对方不知道怎么去调用这 ...

  2. java调用.net asmx / wcf

    一.先用asmx与wcf写二个.net web service: 1.1 asmx web服务:asmx-service.asmx.cs using System; using System.Coll ...

  3. JAVA调用WCF

    Java环境下生成代理类的工具有很多,如wsdl2Java,wsimport 等.本文中使用的工具是wsimport. 1.wsdl2Java 生成命令实例: wsdl2Java -p package ...

  4. Web循环监控Java调用 / Java调用.net wcf接口

    背景介紹 (Background Introduction) 目前有一些报表客户抱怨打不开 报表执行过程过长,5.8.10秒甚至更多 不能及时发现和掌握服务器web站点情况 用戶需求(User Req ...

  5. JAVA调用 keytool 生成keystore 和 cer 证书

    keytool是一个Java数据证书的管理工具, keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里, 包含两种数据: 密钥实体( ...

  6. java调用mysql服务做备份与恢复

    首先添加mysql的bin到环境变量,这样可以简写部分命令,并且做到不依赖系统mysql的具体安装路径. 重启计算机可以让添加的环境变量在java代码中调用时生效.(cmd中生效但java中调用没有生 ...

  7. 存储过程详解与java调用(转)

    存储过程的一些基本语法: --------------创建存储过程----------------- CREATE PROC [ EDURE ] procedure_name [ ; number ] ...

  8. c++ c# java 调用 c++ 写的dll

    1. vs 中新建win32 dll 项目   testdll 添加实现文件       test.cpp #include "stdafx.h" #include <ios ...

  9. Java调用第三方dll文件的使用方法 System.load()或System.loadLibrary()

    Java调用第三方dll文件的使用方法 public class OtherAdapter { static { //System.loadLibrary("Connector") ...

随机推荐

  1. POJ3693Maximum repetition substring (循环节)(后缀数组+RMQ)

    The repetition number of a string is defined as the maximum number R such that the string can be par ...

  2. k8s-flannel容器集群网络部署

    [root@k8s-master src]# wget https://github.com/coreos/flannel/releases/download/v0.9.1/flannel-v0.9. ...

  3. MySQL-计算7月重新激活客户第二种方法_20161022

    上周日休假去广西玩了一周,回来继续. (一)上次用的是取当月首单日期,往前推30天 代码比较繁琐 这次方法是借助变量 错行进行判断 一个用户上次最后一次下单时间和下次下单时间的时间差 也就是形成一个相 ...

  4. 京东SDK模板卡盘效果实现代码

    最近在做京东模板,因为是最新平台,好多功能都需要摸索,俺技术一般,摸索出一个简易的卡盘功能   ——————使用的是分类推荐模块哦! 本着共享的精神,俺将代码放到这儿了,各人请自便.(代码还不够完善, ...

  5. CRC16算法之三:CRC16-CCITT-MODBUS算法的java实现

    CRC16算法系列文章: CRC16算法之一:CRC16-CCITT-FALSE算法的java实现 CRC16算法之二:CRC16-CCITT-XMODEM算法的java实现 CRC16算法之三:CR ...

  6. Ubuntu 获得超级用户权限

    sudo passwd root 首先要先输入当前用户的密码,再在"输入新的UNIX密码"后面输入你想要设置的 root 密码即可,然后就可以切换到 super user 了: $ ...

  7. 信息安全:Token

    ylbtech-信息安全:Token Token(计算机术语) 在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思. 1.令牌返回顶部 1.令牌 (信息安全术语) Token, 令牌,代 ...

  8. day1 java基础回顾- 文件路径

    绝对路径 以根目录或某盘符开头的路径(或者说完整的路径) 例如: l  c:/a.txt (Windows操作系统中) l  c:/xxx/a.txt (Windows操作系统中) l  /var/x ...

  9. centos6.5 下安装 sqlplus

    1.下载下面的 rpm 文件 oracle-instantclient12.-basic--.x86_64.rpm oracle-instantclient12.-devel--.x86_64.rpm ...

  10. ZOJ 3512 Financial Fraud (左偏树)

    题意:给定一个序列,求另一个不递减序列,使得Abs(bi - ai) 和最小. 析:首先是在每个相同的区间中,中位数是最优的,然后由于要合并,和维护中位数,所以我们选用左偏树来维护,当然也可以用划分树 ...