0
Je tente de créer un proxy client REST par programmation en C# en utilisant le code ci-dessous, mais je reçois toujours une erreur CommunicationException. Est-ce que je manque quelque chose?Création d'un proxy client WCF REST par programme (en C#)
public static class WebProxyFactory
{
public static T Create<T>(string url) where T : class
{
ServicePointManager.Expect100Continue = false;
WebHttpBinding binding = new WebHttpBinding();
binding.MaxReceivedMessageSize = 1000000;
WebChannelFactory<T> factory =
new WebChannelFactory<T>(binding, new Uri(url));
T proxy = factory.CreateChannel();
return proxy;
}
public static T Create<T>(string url, string userName, string password)
where T : class
{
ServicePointManager.Expect100Continue = false;
WebHttpBinding binding = new WebHttpBinding();
binding.Security.Mode =
WebHttpSecurityMode.TransportCredentialOnly;
binding.Security.Transport.ClientCredentialType =
HttpClientCredentialType.Basic;
binding.UseDefaultWebProxy = false;
binding.MaxReceivedMessageSize = 1000000;
WebChannelFactory<T> factory =
new WebChannelFactory<T>(binding, new Uri(url));
ClientCredentials credentials = factory.Credentials;
credentials.UserName.UserName = userName;
credentials.UserName.Password = password;
T proxy = factory.CreateChannel();
return proxy;
}
}
Pour que je puisse l'utiliser comme suit:
IMyRestService proxy = WebProxyFactory.Create<IMyRestService>(url, usr, pwd);
var result = proxy.GetSomthing(); // Fails right here
i don pas encore comprendre pourquoi, mais dans une autre question, le problème était d'ajouter le webhttpbinding aux comportements de point de terminaison usine: factory.Endpoint.Behaviors.Add (new WebHttpBehavior()); –
Cela ne fonctionnait pas non plus. D'autres suggestions? – Tawani