c - C 客户端和 telnet 上的部分页面返回

标签 c httprequest telnet

我尝试通过自己的客户端请求网页,但返回的网页缺少内容。当我尝试 Telnet 请求该页面时,也会发生同样的情况。我尝试过使用此处找到的代码和剥离版本(两者都返回相同的结果):

http://coding.debuntu.org/c-linux-socket-programming-tcp-simple-http-client

我请求的网页如下,可以通过浏览器轻松访问,但是当我尝试使用自己的客户端访问它时,我在 Telnet 和代码中都丢失了大部分内容。我尝试过调整缓冲区大小,一旦这给出了稍大的结果,但在第二次运行时内容就消失了。

http://www.asx.com.au/asx/research/companyInfo.do?by=asxCode&asxCode=MQG

如何发出页面请求并获取完整页面源代码?

最佳答案

我只是尝试使用以下请求行请求该页面:

GET /asx/research/companyInfo.do?by=asxCode&asxCode=MQG HTTP/1.0
UserAgent: Myself

我得到的结果是:

HTTP/1.0 200 OK
Age: 36
Date: Wed, 30 Jan 2013 07:12:03 GMT
Content-Length: 38060
Content-Type: text/html;charset=ISO-8859-1
Server: Apache
Content-Language: en

也包括浏览器获取的整个页面内容。我猜您找不到所需信息的问题是由于页面包含动态(JavaScript)部分,这些部分在页面显示在浏览器中后立即加载更多信息。

如果您想从此页面获取特定信息,则必须剖析页面内容,分析 JavaScript 部分,并对这些部分如何检索信息的界面进行逆向工程。

旁注:如果您负担得起(在空间和复杂性方面),请使用像 curl 这样的库这已经涵盖了实现 HTTP 时必须注意的许多问题。

关于c - C 客户端和 telnet 上的部分页面返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14596344/

相关文章:

c - C 中结构体指针指向哪个地址?

php - Klarna 结帐返回 http_status_code 500 Internal Server Error 作为响应

AngularJS 发送 OPTIONS 请求而不是 POST

c# - 使用事件处理程序接收到的 TCP 客户端数据

command-line - 向 Gmail 发送 POP3 命令会返回旧邮件

keyboard - telneting 退格键错误

c - SSE Intrinsics 算术错误

c - 从 C 语言中的 C 风格字符串获取位序列?

c - 为什么我们在结构数组中使用点运算符 (.) 而不是箭头运算符 (->) 作为函数参数?

java.lang.IllegalArgumentException : Illegal character in path at index 33: https://box. one.th/app/api/上传