URLConnection не получает заголовки - PullRequest
0 голосов
/ 17 февраля 2012

Я пытаюсь использовать веб-службу в Matlab, но у меня возникла проблема.

Веб-служба отправляет cookie для проверки подлинности, которую Matlab игнорирует.Функция matlab callSoapService использует этот код Java:

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');

Если я напишу httpConn.getHeaderFields () , она возвращает пустой список вместо заголовков с cookie.Любая идея?В документации по Java написано, что вы должны вызывать httpConn.connect (), а Matlab этого не делает, я добавил эту строку где-то в коде просто для того, чтобы попробовать, но это не сработало lol

1 Ответ

0 голосов
/ 20 февраля 2012

Я нашел решение.

ASP.NET не отправлял cookie, потому что объект возможностей браузера для пользовательского агента Java Mozilla / 5.0 (Java 1.6.0_17; Windows 7 6.1 amd64; en_US) ICEbrowser /v6_0_2 возвращает false в поле Cookies.

Я создал новый файл java.browser и поместил его в каталог App_Browsers.Я повторно развернул приложение, и оно заработало!ASP.Net отправляет файл cookie в Matlab.

Далее мне нужно было изменить функцию Matlab Soap, чтобы она каждый раз получала и отправляла файл cookie.Я отправил решение этой проблемы в http://www.cadec -online.com / Help / API.aspx # Matlab

Я сообщил об этой проблеме в Matlab: 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...