2016-04-07 30 views
6

GET ve POST HTTP isteklerini nasıl yapabilirim? Soket çözümünü buldum, ama hepsi bu mu?HTTP değil soket web istekleri - 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); 

cevap

6

std.net.curl'a bakın.

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

kıvırmak tartışmasız iyi bir çözümdür: Bu get ve post yöntemleri vardır. Ancak, bu projenize yeni bir bağımlılık katacak, değil mi? Üzerinde çalıştığınız projenin türüne bağlı olarak, Adam Ruppe'nin arsd modüllerini, özellikle de http modülünü kullanmanızı tavsiye ederim (aynı zamanda http2 de üzerinde çalışıyor) - https://github.com/adamdruppe/arsd/blob/master/http.d. Ya da belki de bir çerçeve istiyorsanız, o zaman bir HTTP istemcisi olduğu için vibe.d en iyi seçeneğinizdir (http://vibed.org). Önerdiğim iki vibe.d ile ilgili web geliştirme odaklı kitaplar var ve bunlar şu sayfada listeleniyor: http://vibed.org/tutorials.

İlgili konular