2011-07-25 5 views
0

communication entre le client android et le service auto-hébergé wcf. Tout fonctionne parfaitement si j'envoie un message dans Fiddler au service, mais le client android redonne "java.net.SocketException: No route to host" quand j'essaye d'envoyer un message. Connexion à partir de l'appareil réel via le wifi à l'ordinateur avec le service en cours d'exécution. Est-ce que quelqu'un avait ce problème?android - communication de service de repos wcf

Serveur:

[ServiceContract] 
public interface ISDMobileService 
{ 
    [OperationContract] 
    [WebInvoke(Method="POST",BodyStyle=WebMessageBodyStyle.Bare,ResponseFormat=WebMessageFormat.Xml,RequestFormat=WebMessageFormat.Xml)] 
    string PostMessage(string SdaMessage); 
} 

public class Service : ISDMobileService 
{ 
    public string PostMessage(string SdaMessage) 
    { 
     Console.WriteLine("Post Message : " + SdaMessage); 
     return"Calling Post for you " + SdaMessage; 
    } 
} 

Client:

String urlToSendRequest = "http://172.16.3.4:7310/PostMessage"; 
String targetDomain = "172.16.3.4"; 

HttpClient httpClient = new DefaultHttpClient(); 
HttpPost request = new HttpPost(urlToSendRequest); 

List<NameValuePair> postParameters = new ArrayList<NameValuePair>(); 
postParameters.add(new BasicNameValuePair("SdaMessage", "param value one")); 

request.addHeader("Content-Type", "application/xml"); 

try 
{ 
    request.setEntity(new UrlEncodedFormEntity(postParameters)); 
    HttpResponse response = httpClient.execute(request); 

    if(response != null) 
    { 
     HttpParams str = response.getParams(); 
    } 
} 
catch (Exception ex) 
{ 
    ex.printStackTrace(); 
} 

Répondre

1

172.16.x.x est dans la plage d'adresses IP privée, non accessible à partir de l'Internet public. Si vous essayez de vous connecter à partir d'un appareil Android qui n'est pas sur le même réseau privé, il échouera avec l'erreur indiquée.

+0

Merci Monsieur, ceci a résolu mon problème. – Maxim

+0

Quelle serait l'IP si nous voulions tester la demande provenant d'un appareil Android à la WCF? – kavita