在C中实现Java的getResponseCode()?

时间:2009-01-09 04:05:10

标签: java c winsock porting

如果有任何帮助,C#的WebRequest中也有类似的类。虽然我不想在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 个答案:

答案 0 :(得分:2)

标准C库中没有HTTP支持。

所以你有两个选择 - 使用第三方HTTP库,例如ar libcurl,或者自己处理HTTP:

  • 打开套接字
  • 解析主机名
  • 连接到服务器
  • 构建HTTP请求
  • 向服务器发送请求
  • 接收HTTP响应
  • 解析响应并从中获取响应代码。