C#调用java写的WebService,使用自动生成的代理类,如何加上SoapHeader

俗人1979 2015-03-13 04:29:35
vs2013,C#调用java写的WebService,自动生成的代理类,其中有个类是HIServiceClient,就是用来实例化对象调用的那个类。代理类上没有生成SoapHeader的地方。
调用时一直报Request must include AuthenticationToken错误。
调用方法


private AdFrontService.HIServiceClient adFrontService;

private void mainForm_Load(object sender, EventArgs e)
{
adFrontService = new AdFrontService.HIServiceClient();
}

private void btn_Upload_Click(object sender, EventArgs e)
{
string r=adFrontService.submitHIData("abcd");
MessageBox.Show(r);
}


用抓包工具抓包,发现报文里面是没有SoapHeader头的。

在网上找了不少的办法,大都是说在代理类的里面写一个自定义的SoapHeader类,

    
public class AuthenticationToken : SoapHeader
{
public string Username;
public string Password;

}


然后在类HIServiceClient中加上

public AuthenticationToken Header;


在类HIServiceClient中的调用方法上加上 [SoapHeader("Header")]

        [SoapHeader("Header")]
//[System.Web.Services.Protocols.SoapHeaderAttribute("header")]
public string submitHIData(string arg0) {
AdFrontApp.AdFrontService.submitHIData inValue = new AdFrontApp.AdFrontService.submitHIData();
inValue.Body = new AdFrontApp.AdFrontService.submitHIDataBody();
inValue.Body.arg0 = arg0;
AdFrontApp.AdFrontService.submitHIDataResponse retVal = ((AdFrontApp.AdFrontService.HIService)(this)).submitHIData(inValue);
return retVal.Body.@return;
}



但是调用WebService还是要报错,抓包发现仍然没有加上SoapHeader,到底该如何弄呢?
...全文
527 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
俗人1979 2015-03-30
  • 打赏
  • 举报
回复
自动生成的代理类没有SoapHeader请求参数
  • 打赏
  • 举报
回复
http://www.cnblogs.com/scy251147/archive/2011/04/11/2013069.html 生成的没SoapHeader请求参数?

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧