小编Jav*_*lez的帖子

通过 .NET 中的 Web 服务调用发送 cookie

我在 .NET 中将 cookie 设置为 Web 服务调用时遇到问题。在使用提供的 wsdl 的任何调用之前,我必须提供一个在登录到客户网站时获得的 cookie。我有一个方法来登录和检索 cookie,然后我将它传递给我的 makeSearch 方法(如下所示)。如您所见,我正在 cookieContainer 中为 wsdl 对象设置 cookie;但是,当我检查 AdvancedSearch 方法发出的请求时,我注意到 fiddler 没有发送 cookie。客户端用 Java 提供了解决方案,但在将其传输到 .NET 时遇到了问题。

以下是Java代码中的解决方法:(port为传入的wsdl对象)

private static void setupClient(Object port, final String cookie) throws Exception {
    Client client = ClientProxy.getClient(port); 
    HTTPConduit http = (HTTPConduit) client.getConduit();
    HTTPClientPolicy policy = http.getClient();
    if (policy == null) {
        policy = new HTTPClientPolicy();
        http.setClient(policy);
    }
    policy.setCookie(cookie);
    policy.setAutoRedirect(true);
}
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

public AdvancedSearchResult makeSearch(String cookie) {
    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
    AdvancedSearchResult searchResults = new AdvancedSearchResult(); …
Run Code Online (Sandbox Code Playgroud)

.net soap web-services cookiecontainer

4
推荐指数
1
解决办法
7632
查看次数

标签 统计

.net ×1

cookiecontainer ×1

soap ×1

web-services ×1