我在c#中有一个简单的Web服务。 这是C#代码:
IService1.cs
[ServiceContract(ConfigurationName = "IService")]
public interface IService1
{
[OperationContract]
[WebGet]
string TestAndroid();
}
Service1.svc.cs
public class Service1 : IService1
{
public string TestAndroid()
{
return "Test done !";
}
}
以下是Android代码:
protected Boolean doInBackground(String... urls) {
try {
URL url = new URL("http://10.0.2.2:49363/Service1.svc/TestAndroid");
InputStream in = new BufferedInputStream(httpURLConnection.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line = reader.readLine();
reader.close();
} catch(Exception e){
return false;
}
return null;
}
当我想读取InputStream时,我有一个错误。
它的
java.io.FileNotFoundException: http://10.0.2.2:49363/Service1.svc/TestAndroid
我不知道问题出在哪里,因为当我进入浏览器时,我有
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">Test done !</string>
有人能帮助我吗?
答案 0 :(得分:0)
我希望您的服务正常运行,并且您已通过调用网址http://10.0.2.2:49363/Service1.svc/TestAndroid在计算机上对其进行了测试 我是对的吗?
然后,您的问题的简单解释是您的Android不知道ip地址10.0.2.2。
您可以验证是否可以访问?只需尝试在Android设备上的浏览器中打开相同的网址即可。
查看此IP地址的简单解决方案 - 您的手机应与计算机位于同一WiFi上。
更新: 目标是看到运行WCF主机的服务的计算机。问题是 - Android设备可以看到WCF主机吗?
相反的方向无关紧要,但知道这一点很好 无法从计算机上看到Android模拟器。这是好explanation