Отправляю запрос на яндекс диск чтобы узнать содержимое каталога но мне ни чего не выводит в файл.
Подскажите что не так?
import java.io.*;
import java.net.*;
class HTTPClient
{
public static void main(String args[])
{
try
{
byte buf[] = new byte[64*1024];
int r;
// читаем файл с запросом в переменную header
FileInputStream fis = new FileInputStream("testrequest.txt");
r = fis.read(buf);
String header = new String(buf, 0, r);
fis.close();
// выделяем из строки запроса хост, порт и URL ресурса
// для выделения используется специальнонаписанная ф-ия extract
String host = extract(header, "Host:", "\n");
// если не найден параметр Host - ошибка
if(host == null)
{
System.out.println("invalid request:\n"+header);
return;
}
// находим порт сервера, по умолчанию он - 80
int port = host.indexOf(":",0);
if(port < 0) port = 80;
else
{
port = Integer.parseInt(host.substring(port+1));
host = host.substring(0, port);
}
// открываем сокет до сервера
Socket s = new Socket(host, port);
// пишем туда HTTP request
s.getOutputStream().write(header.getBytes());
// получаем поток данных от сервера
InputStream is = s.getInputStream();
// Открываем для записи файл, куда будет слит лог
FileOutputStream fos = new FileOutputStream("testreply.txt");
// читаем ответ сервера, одновременно сливая его в открытый файл
r = 1;
while(r > 0)
{
r = is.read(buf);
if(r > 0)
fos.write(buf, 0, r);
}
// закрываем файл
fos.close();
s.close();
}
catch(Exception e)
{e.printStackTrace();} // вывод исключений
}
Содержимое файла testrequest.txt:
PROPFIND / HTTP/1.1
Host: webdav.yandex.ru
Accept: */*
Depth: 1
Authorization: OAuth dd69d1a42a884687b0d1dbd3cea099d5