Следующее работает с Java 7/8, защищенными URL-адресами и показывает, как добавить cookie к вашему запросу. Обратите внимание, что это в основном прямая копия этого другого замечательного ответа на этой странице , но добавлен пример файла cookie и пояснения в том, что он также работает с защищенными URL-адресами ;-)
Если вам необходимо подключиться к серверу с недопустимым сертификатом или самоподписанным сертификатом, это приведет к появлению ошибок безопасности, если вы не импортируете сертификат. Если вам нужна эта функциональность, вы можете рассмотреть подход, подробно описанный в этом ответе к этому связанному с вопросу о StackOverflow.
String result = getUrlAsString("https://www.google.com");
System.out.println(result);
выходы
import java.net.URL;
import java.net.URLConnection;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public static String getUrlAsString(String url)
{
try
{
URL urlObj = new URL(url);
URLConnection con = urlObj.openConnection();
con.setDoOutput(true); // we want the response
con.setRequestProperty("Cookie", "myCookie=test123");
con.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
StringBuilder response = new StringBuilder();
String inputLine;
String newLine = System.getProperty("line.separator");
while ((inputLine = in.readLine()) != null)
{
response.append(inputLine + newLine);
}
in.close();
return response.toString();
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}
Можно присоединить gdb к рабочему процессу и затем назвать umask в отладчике:
(gdb) call umask(0)
[Switching to Thread -1217489200 (LWP 11037)]
$1 = 18
(gdb) call umask(18)
$2 = 0
(gdb)
(примечание: 18 = O22)
Это предполагает, что может быть действительно ужасный способ получить umask, использующий ptrace.
Если Вы - текущий процесс, можно записать файл в/tmp и проверить его установку. Лучшее решение состоит в том, чтобы назвать umask (3) передающий нуль - функция возвращает установку до вызова - и затем сбросила его назад путем пасования назад того значения в umask.
umask для другого процесса, кажется, не представлен.
От GNU C руководство Библиотеки:
Вот пример, показывающий, как считать маску с
umask
, не изменяя его постоянно:mode_t read_umask (void) { mode_t mask = umask (0); umask (mask); return mask; }
Однако лучше использовать
getumask
, если Вы просто хотите считать значение маски, потому что это повторно используемо (по крайней мере, при использовании операционной системы GNU).
getumask
glibc-конкретно, все же. Таким образом, при оценке мобильности тогда неповторно используемым решением является единственное существует.
Редактирование: я только что держал для ->umask
на всем протяжении исходного кода Linux. Нигде нет, который получит Вас umask различного процесса. Кроме того, нет никакого getumask
; по-видимому, это - Hurd-единственная вещь.