Ho una classe HTTP che ha un metodo Get e Post. È una classe semplice che ho creato per incapsulare le richieste Post e Get in modo da non dover ripetere il codice get / post in tutta l'applicazione.
In C #:
class HTTP
{
private CookieContainer cookieJar;
private String userAgent = "...";
public HTTP()
{
this.cookieJar = new CookieContainer();
}
public String get(String url)
{
// Make get request. Return the JSON
}
public String post(String url, String postData)
{
// Make post request. Return the JSON
}
}
Ho reso la proprietà CookieJar perché voglio conservare i valori dei cookie durante la sessione. Se l'utente ha effettuato l'accesso a Twitter con la mia domanda, ogni richiesta che faccio (sia che venga inviata o posta), voglio utilizzare i cookie in modo che rimangano loggati.
Comunque sono le basi. Ma, non voglio restituire una stringa in tutte le istanze. A volte posso desiderare il cookie, o un valore di intestazione, o qualcos'altro dalla richiesta.
Idealmente mi piacerebbe poterlo fare nel mio codice:
Cookie cookie = http.get("http://google.com").cookie("g_user");
String g_user = cookie.value;
o
String source = http.get("http://google.com").body;
La mia domanda - Per fare ciò, dovrei avere una classe Get e una classe Post, che sono incluse nella classe HTTP e sono accessibili tramite gli accessor?
All'interno della classe Get and Post avrei quindi il metodo Cookie e la proprietà body e qualsiasi altra cosa necessaria.
Dovrei usare anche un'interfaccia, o creare una classe Request e avere Post e Get estendere in modo che i metodi e le proprietà comuni siano disponibili per entrambe le classi?
Oppure, sto pensando assolutamente di sbagliato?