通过WINSOCK获取网页内容,为什么每次得到的都是"错误:您所请求的网址(URL)无法获取"?

feng0hua0 2008-04-05 05:38:50

void CGetIPDlg::OnButton1()
{
// TODO: Add your control notification handler code here
char server_name[256]= "www.apnic.net";
LPHOSTENT lphost = gethostbyname(server_name);

struct sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(80);
sin.sin_addr.S_un.S_addr = ((LPIN_ADDR)lphost->h_addr)->s_addr;
//sin.sin_addr.S_un.S_addr = inet_addr("202.114.74.198");
SOCKET sClient = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
connect(sClient,(sockaddr*)&sin,sizeof(sin));
char request[]= "GET /HTTP/1.1\r\n Host:www.apnic.net \r\n\r\n";
send(sClient,request,strlen(request),0);
/*获取文件内容*/
char* data = new char[102400];
memset(data,0,102400);
recv(sClient,data,102400,0);
//m_urlshow是我文本框关联的内容
m_urlshow = data;
UpdateData(false);
closesocket(sClient);
WSACleanup();
}


这是通过WINSOCK获取网页内容的代码,为什么每次获取的结果都是"错误:您所请求的网址(URL)无法获取"呢?是不是"Host:"这里有什么要注意的地方?
...全文
3162 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
feng0hua0 2008-04-05
  • 打赏
  • 举报
回复
谢谢,解决了.
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 feng0hua0 的回复:]
gethostbyname可以解析到正确的IP地址,而且我不用gethostbyname,直接用IP地址也没成功.
请问askirya,那正确的格式是什么呢?能给个例子吗?
[/Quote]
不是写出来了么
feng0hua0 2008-04-05
  • 打赏
  • 举报
回复
gethostbyname可以解析到正确的IP地址,而且我不用gethostbyname,直接用IP地址也没成功.
请问askirya,那正确的格式是什么呢?能给个例子吗?
arong1234 2008-04-05
  • 打赏
  • 举报
回复
gethostbyname能解析到正确的IP地址么?
  • 打赏
  • 举报
回复
多少空格都会引起失败的.

char request[]= "GET / HTTP/1.1\r\nHost:www.apnic.net\r\n\r\n";

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧