Я звоню в службу SOAP, которая возвращает мне файл, который я сохраняю (см. Код ниже). Я хотел бы сохранить его, используя исходное имя файла, которое сервер отправляет мне. Как вы можете видеть, я просто жестко кодирую имя файла, где я сохраняю поток.Java: Получение имени файла загруженного прикрепленного файла (HttpClient, PostMethod)
def payload = """
<SOAP-ENV:Body><mns1:getFile xmlns:mns1="http://connect.com/">
<userLogicalId>${params.userLogicalId}</userLogicalId>
<clientLogicalId>${params.clientLogicalId}</clientLogicalId>
def client = new HttpClient()
def statusCode = client.executeMethod(method)
InputStream handler = method.getResponseBodyAsStream()
//TODO: The new File(... has filename hard coded).
OutputStream outStr = new FileOutputStream(new File("c:\\var\\nfile.zip"))
byte[] buf = new byte[1024]
int len
while ((len = handler.read(buf)) > 0) {
outStr.write(buf, 0, len);
}
handler.close();
outStr.close();
Так в основном, я хочу, чтобы получить имя файла в ответе. Благодарю.
Спасибо за обоих ответов. Проблема заключалась в том, что служба SOAP не добавляла имя файла в заголовок. Когда я читаю заголовок ответа, я получаю это"; start-info = "text/xml" , Set-Cookie: stage_80_evi = 2078807832.1.4098350016.1071872916; Путь = / –
ibaralf
, Content-Type: multipart/related; тип = "приложения/XOP + XML"; граница = "---- = _ Part_0_1546767.1329120288435"; start = "