我在做Android连接本地WebService的功能。运行时获取不到WebService的返回结果。logcat中有这样一条信息:request time failed: java.net.SocketException: Address family not supported by protocol请教了下别人,得知是Android虚拟机连不上局域网导致的。如何让Android虚拟机连上局域网?源码:
SoapObject request = new SoapObject("http://api.tingchemap.com/", "login");
String url="http://192.168.100.199/index.php?m=member";
String soapAction="http://api.tingchemap.com/login";
Log.v("map","SoapObject");
Log.v("map",request.getNamespace());
request.addProperty("username", "[email protected]");
request.addProperty("password", "samyu2011");
SoapEnvelope envelope = new SoapEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = request;
envelope.setOutputSoapObject(request);
Log.v("map","SoapEnvelope");
SoapSerializationEnvelope ht = new SoapSerializationEnvelope(SoapEnvelope.VER11);
HttpTransportSE tp=new HttpTransportSE(url);
Log.v("map","HttpTransportSE");
try {
tp.call(soapAction, envelope);
Log.v("map","call");
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
Log.v("map","Exception:"+e1.getMessage());
} try
{
SoapObject obj=(SoapObject)envelope.bodyIn;
String result = obj.getProperty(0).toString();
text1.setText(result);
Log.v("map","result");
}
catch (Exception e) {
e.printStackTrace();
Log.v("map","Exception:"+e.getMessage());
}
SoapObject request = new SoapObject("http://api.tingchemap.com/", "login");
String url="http://192.168.100.199/index.php?m=member";
String soapAction="http://api.tingchemap.com/login";
Log.v("map","SoapObject");
Log.v("map",request.getNamespace());
request.addProperty("username", "[email protected]");
request.addProperty("password", "samyu2011");
SoapEnvelope envelope = new SoapEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = request;
envelope.setOutputSoapObject(request);
Log.v("map","SoapEnvelope");
SoapSerializationEnvelope ht = new SoapSerializationEnvelope(SoapEnvelope.VER11);
HttpTransportSE tp=new HttpTransportSE(url);
Log.v("map","HttpTransportSE");
try {
tp.call(soapAction, envelope);
Log.v("map","call");
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
Log.v("map","Exception:"+e1.getMessage());
} try
{
SoapObject obj=(SoapObject)envelope.bodyIn;
String result = obj.getProperty(0).toString();
text1.setText(result);
Log.v("map","result");
}
catch (Exception e) {
e.printStackTrace();
Log.v("map","Exception:"+e.getMessage());
}
System.getProperties().put("proxyHost","192.168.121.32");
System.getProperties().put("proxyPort", "8080");第一行:通知Java您要通过代理进行连接
第二行:指定代理所在的服务器
第三行:指定代理监听的端口
或者 给模拟器添加代理 按下面格式 我相信你懂的D:\SDK2.2\android-sdk-windows\tools\emulator -avd googleApi -http-proxy 10.9.1.13:3128 -scale 0.8