2012-02-17 5 views
0

Matlab에서 웹 서비스를 사용하려고하는데 문제가 있습니다.URLConnection에서 헤더를 검색하지 않습니다.

webservice는 matlab에서 무시하는 인증 용 쿠키를 보냅니다. 내가 httpConn.getHeaderFields를 (작성하는 경우 대신 쿠키와 헤더, 그것은 빈 목록을 반환)

url = URL(endpoint); 
if isempty(proxy) 
    httpConn = url.openConnection; 
else 
    httpConn = url.openConnection(proxy); 
end 
httpConn.setRequestProperty('Content-Type','text/xml; charset=utf-8'); 
httpConn.setRequestProperty('SOAPAction',soapAction); 
httpConn.setRequestMethod('POST'); 
httpConn.setDoOutput(true); 
httpConn.setDoInput(true); 
outputStream = httpConn.getOutputStream; 
outputStream.write(b); 
outputStream.close; 
inputStream = httpConn.getInputStream; 
byteArrayOutputStream = java.io.ByteArrayOutputStream; 
isc = InterruptibleStreamCopier.getInterruptibleStreamCopier; 
isc.copyStream(inputStream,byteArrayOutputStream); 
inputStream.close; 
byteArrayOutputStream.close; 
resp = byteArrayOutputStream.toString('UTF-8'); 

: matlab에 기능 callSoapService이 자바 코드를 사용합니다. 어떤 생각? java 문서에서 httpConn.connect()를 호출해야하고 Matlab이 그렇게하지 않는다고 말하면 코드의 어딘가에 시도해 보도록 코드를 추가했습니다.하지만 그 코드는 작동하지 않습니다.

답변

0

해결책을 찾았습니다.

Java 사용자 에이전트 Mozilla/5.0 (Java 1.6.0_17; Windows 7 6.1 amd64; en_US)의 브라우저 기능 개체 때문에 ICEbrowser/v6_0_2가 쿠키 필드에 false를 반환합니다.

새로운 java.browser 파일을 생성하여 App_Browsers 디렉토리에 넣습니다. 응용 프로그램을 재배포하면 효과가있었습니다! ASP.Net은 쿠키를 Matlab에 보냅니다.

내가해야 할 일은 매회 쿠키를 받아서 다시 보내도록 Matlab Soap 함수를 수정하는 것입니다. http://www.mathworks.com/support/service_requests/Service_Request_Detail.do?row_id=1-GQMEDO

http://msdn.microsoft.com/en-us/library/system.web.httpbrowsercapabilities.aspx

: 내가 MATLAB에이 문제를보고 http://www.cadec-online.com/Help/API.aspx#Matlab

에서와 솔루션을 게시

관련 문제