【问题标题】:http headers for c# client to Java Servicec# 客户端到 Java 服务的 http 标头
【发布时间】:2011-10-19 03:59:34
【问题描述】:

嗨,我一直在尝试在 c# 中将 http 标头添加到 web 客户端,我找了很多地方,但运气不佳,经常有人指向 Credentials 类,但是我只有 ClientCredentials,我的客户也缺少 PreAuthenticate 字段?

该服务是用 Java 编写的,我可以向其中添加 http 标头,如下所示

reqHeaders.put(HEADER_NAME_USERNAME, Collections.singletonList(USER_NAME));
reqHeaders.put(HEADER_NAME_PASSWORD, Collections.singletonList(PASSWORD));
((BindingProvider) webWS).getRequestContext().put(MessageContext.HTTP_REQUEST_HEADERS,reqHeaders);

但是我不知道如何在 c# 中执行此操作,我尝试过端点地​​址生成器、ClientCredential、windows.ClientCredential,基本上我可以找到用户名和密码 当我在java中发出请求时,我在wireshark中捕获http数据包 看起来像这样

+hypertext transfer protocol
+POST
  post stuff
 Password: mypass
 Username: username
 soapaction: ... and so on

我无法更改服务器端代码,我只知道我是否可以添加两个标题,一个称为用户名和一个密码,其值将是 Sheening(阅读:获胜)

【问题讨论】:

  • 您在为您的客户使用什么? WCF,SoapHttpClientProtocol(aka asmx),用 HttpWebRequest 滚动你自己的请求?
  • @CheeZe5 我通过在标准控制台应用程序项目中添加服务引用来访问它,而不是创建一个新的 Web 服务对象 ServiceReference1.WebsiteWSClient ws = nw .... 并像 ws 一样调用关闭请求。读取当前数据();

标签: c# web-services http http-headers http-authentication


【解决方案1】:

http://msmvps.com/blogs/paulomorgado/archive/2007/04/27/wcf-building-an-http-user-agent-message-inspector.aspx

这主要回答了我的问题,而不是编辑 app.config 虽然我只是在下面添加了新定义的行为类

webservice.Endpoint.Behaviors.add(new CustomBehavior(params));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 2015-03-27
    • 2013-11-12
    • 1970-01-01
    相关资源
    最近更新 更多