Реализация Java getResponseCode () в C? - PullRequest
0 голосов
/ 09 января 2009

Если это поможет, в WebRequest C # есть аналогичный класс. Хотя я не хочу этого в Java или .NET, мне интересно, как реализовать это в собственном коде C / C ++ (для Windows).

для справки:

try {

URL url=new URL("http://google.ca");
HttpURLConnection con=(HttpURLConnection)url.openConnection();
con.connect();
int code = con.getResponseCode();
System.out.println(code);

} catch (MalformedURLException e) {
System.err.println("Error reading URL.");
}

распечатывает:

200

означает «ОК»

Я понимаю, что мне, вероятно, нужно использовать сокеты и отправить строку User-Agent, но я не знаю, с чего начать. Всякий раз, когда я изучаю новый язык, первое, что мне нравится делать, это пытаться портировать свой код на него, но этот ввод меня в тупик.

Любая помощь приветствуется

1 Ответ

2 голосов
/ 09 января 2009

HTTP не поддерживается в стандартной библиотеке C.

Таким образом, у вас есть два варианта - использовать стороннюю библиотеку HTTP, например, ar libcurl , или обрабатывать HTTP самостоятельно:

  • открытая розетка
  • разрешить имя хоста
  • подключиться к серверу
  • сборка HTTP-запроса
  • отправить запрос на сервер
  • получить ответ HTTP
  • разобрать ответ и получить от него код ответа.
...