2012-06-12 4 views
1

Utilisation du service cadre Nancy ... http://nancyfx.org/Autres Nancy.Testing.Browser GET/PUT/POST/SUPPRIMER

Si je veux utiliser l'objet du navigateur dans le côté client à consommer Nancy, comme nous le voyons dans ce exemple: https://github.com/NancyFx/Nancy/wiki/Testing-your-application

... 
    var bootstrapper = new DefaultNancyBootstrapper(); 
    var browser = new Browser(bootstrapper); 

    // When 
    var result = browser.Get("/", with => { 
     with.HttpRequest(); 
    }); 
    ... 

dois-je utiliser Nancy.Testing même si mon application ne teste ??? En d'autres termes, existe-t-il un autre objet Browser qui fait Get, Put, Post et Delete Opérations comme cet objet?

Répondre

1

J'ai trouvé la classe System.Net.WebClient aussi GET/PUT/POST/DELETE par exemple.

//Creating client instance and set the credentials 
var client = new WebClient(); 
client.Credentials = new NetworkCredential(...); 

// using GET Request: 
var data = client.DownloadData("http://myurl/.../" + docId); 

// Using PUT 
var data = Encoding.UTF8.GetBytes("My text goes here!"); 
client.UploadData("http://myurl/...", "PUT", data); 

// Using POST 
var data = new NameValueCollection(); 
data.Add("Field1", "value1"); 
data.Add("Field2", "value2"); 
client.UploadValues("http://myurl/...", "POST", data); 

Mais, enfin j'ai décidé d'utiliser le client WCF REST avec webHttpBinding. Quelque chose comme ceci:

[ServiceContract] 
public interface IMyService 
{ 
    [OperationContract] 
    [WebGet(UriTemplate = "{docId}")] 
    void GetData(string docId); 
} 

Classe de béton:

class MyClient: ClientBase<IMyService>, IMyService 
{ 
    public void GetData(string docId) 
    { 
     Channel.GetData(docId); 
    } 
} 
3

Vous voulez que quelque chose utilise réellement le service? Jetez un oeil à EasyHttp ou RestSharp - ils fournissent tous les deux de jolies API pour la consommation d'API HTTP.