level 5
(发帖被秒删好多次啊,把1楼本来要讲的内容续到这里吧。。)
相信之前有个叫139457820的已经和大家谈笑风生很多次了。
这次要讲的,说得直白点只是http的内容口牙。那么这有什么用呢?嗯。。你可以,
让程序上网采集资料(爬◆虫),
让贴吧自动签到(外◆挂),
让百度云不给你限速(破◆解),
让一个网站增加巨量的负荷(黑◆客)……
其实上面说的,我全都不会哦。。反正不要把【网络编程】这件事想得那么坏啦。
Power by shyakocat
2017年06月05日 02点06分
2
以下的内容,系统可能会时不时删掉一些。。已经尽力压缩语言,排除网址了
2017年06月05日 03点06分
本来还是准备了一些东西的,结果被百度删得很严重。对登录百度、POST的分析(签到、使用百度中的物品等)、bilibili的api等可能讲不下去了。而且我的代码还是C#为重;这帖就改成【交流向】好了。。。
2017年06月05日 04点06分
@炎▫龙 其实发帖前已经写到doc里了。考虑以后有需要可以发在qq里,但是直接是C#的。
2017年06月05日 14点06分
level 5
样例一(入门):
我们先说一说在线翻译。比如有道,他提供了一些网络接口,供程序猿更方便地食用。
好了,根据上面有道提供的网页所讲,啊,只要照着访问它的网址就可以了吧。
没错就是这样。但是还有一些要注意的地方。
首先,网址里可不会有中文出现的(当然,有的时候你能看到中文,那是因为百度是CP936的编码)。所以,我们需要一个函数URLEncode(显然你相对的可以想到肯定有个函数叫URLDecode)。这个写起来不难,我们只要把一个【汉字】替换成%【十六进制】【十六进制】这种形式就可以了;此外,在查询操作中,我们要把空格’ ‘替换成加号’+’(有的时候空格是替换成#20的)。实现如下:
注意:uses Sysutils;
function URLEncode(consts:ansistring;InQueryString:boolean):ansistring;
var
Res:ansistring='';
space:char;
i:longint;
begin
ifInQueryString then space:='+' else space:=#20;
fori:=1 to length(s) do
cases[i] of
'A'..'Z','a'..'z','0'..'9','-','_','.':Res:=Res+s[i];
'':Res:=Res+space;
else Res:=Res+'%'+IntToHex(ord(s[i]),2)
end;
exit(Res)
end
2017年06月05日 03点06分
9
因为太长的一段回帖会被秒删,所以,shy分开来发了,也除去了很多课外知识的内容
![[茶杯]](/static/emoticons/u8336u676f.png)
。
2017年06月05日 03点06分
有道api的网址是:htt
![[茶杯]](/static/emoticons/u8336u676f.png)
p://fanyi.youdao.com/openapi?path=data-mode
2017年06月05日 04点06分
level 5
样例二(入门):
有些时候啊,我们总喜欢上网下载写小东西。那么,我们能不能用自己的代码,获取网上的内容呢。当然啦。
我们可以想到WinAPI是个无所不能的东西。确实,WinAPI里有个叫WinINet的东西,自己就集成了很多网络功能如http、ftp等。我们甚至可以用它实现网页的基本操作POST和GET。在Pascal中,只要uses wininet;即可使用wininet.dll里的很多功能。
uses Classes,WinInet;
function Download(url:pchar;filename:string):boolean;
const
bufsize=1024;
var
hSession,hOpenUrl:HINTERNET;
buf:array[0..bufsize-1]of byte;
dwRead,dwResult:DWORD;
stdout:file of char;
begin
Download:=false;
hSession:=InternetOpen('',INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0);
if hSession=nil then exit;
hOpenUrl:=InternetOpenUrl(hSession,Url,nil,0,0,0);
if hOpenUrl=nil then exit;
assign(stdout,filename); Rewrite(stdout,1);
dwRead:=1;
while dwRead>0 do
begin
InternetReadFile(hOpenUrl,@buf,bufsize,dwRead);
BlockWrite(stdout,buf,bufsize)
end;
close(stdout);
InternetCloseHandle(hOpenUrl);
InternetCloseHandle(hSession)
end;
2017年06月05日 04点06分
17
调用Download(下载的网址,输出的文件)即可。可以下载一些网上的图片、程序、文档、压缩包之类的。
2017年06月05日 04点06分