2016-04-07 22 views
6

Come posso creare una richiesta HTTP GET e POST? Ho trovato la soluzione Socket, ma è tutto?Richieste web HTTP non socket - 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); 

risposta

6

Dai uno sguardo allo std.net.curl. Ha get e post metodi:

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

ricciolo è innegabilmente buona soluzione. Tuttavia, ciò aggiungerebbe una nuova dipendenza al progetto, giusto? A seconda del tipo di progetto su cui lavori, ti consiglio di utilizzare i moduli arsd di Adam Ruppe, in particolare il modulo http (sta lavorando anche su http2) - https://github.com/adamdruppe/arsd/blob/master/http.d. Oppure, se vuoi un framework, vibe.d è la tua migliore opzione (http://vibed.org) perché ha anche un client HTTP. Ci sono due vibe.d correlati, orientati allo sviluppo web, libri che raccomando, e sono elencati nella pagina seguente: http://vibed.org/tutorials.