.NET의 웹 서비스 호출에 쿠키를 설정하는 데 문제가 있습니다. 제공된 wsdl 호출을 사용하기 전에 클라이언트 웹 사이트에 로그인 할 때 얻은 쿠키를 제공해야합니다. 로그인하고 쿠키를 검색하는 메소드가 있는데, 여기서 쿠키를 내 makeSearch 메소드로 전달합니다 (아래 참조). 보시다시피 wsdl 객체의 cookieContainer에 쿠키를 설정하고 있습니다. 그러나, 내가 내 AdvancedSearch 메서드에 의해 만들어진 요청을 확인할 때, 나는 어떤 쿠키도 전송되지 않는다는 것을 피 들러에서인지하고있다. 클라이언트가 Java에서 솔루션을 제공했지만 문제를 .NET으로 전송하는 데 문제가 있습니다..NET에서 웹 서비스 호출을 통해 쿠키 보내기
는 다음 Java 코드의 솔루션입니다 :
public AdvancedSearchResult makeSearch(String cookie){
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
AdvancedSearchResult searchResults = new AdvancedSearchResult();
Cookie cook= new Cookie("NAME", HttpUtility.UrlEncode(cookie));
searches.CookieContainer = new CookieContainer();
searches.CookieContainer.Add(newUri(www.test.com),cook);
searchResults = searches.AdvancedSearch("search params");
return searchResults;
}
수있는 사람 목록 :
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);
}
내 코드는 다음입니다 (포트는 전달 된 WSDL 객체입니다) 어떤 아이디어 또는 해결책? 여기
그것은 보이지 않는 (서버 측에 CAS 보안 수요가) 보안 예외를 얻을 것이다 쿠키를 올바르게 설정하십시오. 쿠키 문자열 값은 쿠키 자체의 내용입니까, 아니면 NAME 매개 변수입니까? – Alan
쿠키 문자열 값의 내용입니다. makeSearch() 메소드로 전달되는 쿠키 문자열 값은 다른 메소드에 의해 검색되고있다. 다른 방법이 있습니까? –