2016-04-07 59 views
6

如何制作GETPOST HTTP请求?我发现套接字解决方案,但是这一切?HTTP非套接字web请求 - D

string host = "google.com"; 
ushort port = 80; 

Socket listener = new TcpSocket; 
    assert(listener.isAlive); 
    listener.blocking = false; 

listener.connect(new InternetAddress(host, port)); 

char[] msg; 
char[] req = cast(char[]) "GET /search.php HTTP/1.1\r\nHost: google.com\r\n\r\n"; 

listener.send(req); 

回答

6

看看std.net.curl。它有getpost方法:

import std.net.curl; 

auto content = get("d-lang.appspot.com/testUrl2"); 
// -- 
auto content = post("d-lang.appspot.com/testUrl2", [1,2,3,4]); 
2

卷曲无疑是很好的解决方案。但是,这会为您的项目添加一个新的依赖项,对吧?根据您所从事的项目类型,我建议您使用Adam Ruppe的arsd模块,特别是http模块(他也在使用http2模块) - https://github.com/adamdruppe/arsd/blob/master/http.d。或者,如果你想要一个框架,那么vibe.d是你最好的选择(http://vibed.org),因为它也有一个HTTP客户端。有两个与vibe.d相关的,面向网络开发的书籍,我推荐使用它们,它们列在下页:http://vibed.org/tutorials