【发布时间】:2014-03-14 06:53:07
【问题描述】:
我正在开发一个应用程序,用于在 android.for 中测试 asp.net webservice。因为它使用了一个简单的 webservice 来添加两个数字。数字作为参数传递。结果是在对话中得到。网络服务器在本地工作.当应用程序运行以下结果作为异常时。我在清单中提供了互联网权限。
java.net.UnknownHostException(无法解析主机 “http://url.com/”:没有与主机名关联的地址)
我的代码如下
主要活动
public static String rslt=""; /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b1=(Button)findViewById(R.id.button1);
final AlertDialog ad=new AlertDialog.Builder(this).create();
b1.setOnClickListener(new OnClickListener() {
@Override public void onClick(View arg0) {
// TODO Auto-generated method stub
try
{
EditText ed1=(EditText)findViewById(R.id.editText1);
EditText ed2=(EditText)findViewById(R.id.editText2);
int a=Integer.parseInt(ed1.getText().toString());
int b=Integer.parseInt(ed2.getText().toString());
rslt="START";
Caller c=new Caller();
c.a=a;
c.b=b;
// c.ad=ad;
c.join();
c.start();
while(rslt=="START") {
try {
Thread.sleep(10);
}catch(Exception ex) {
}
}
ad.setTitle("RESULT OF ADD of "+a+" and "+b);
ad.setMessage(rslt);
}catch(Exception ex) {
ad.setTitle("Error!"); ad.setMessage(ex.toString());
}
ad.show();
} });
}
}
调用者.java
public class Caller extends Thread {
public CallSoap cs;
public int a, b;
public void run() {
try {
cs = new CallSoap();
String resp = cs.Call(a, b);
MainActivity.rslt = resp;
} catch (Exception ex) {
MainActivity.rslt = ex.toString();
}
}
}
CallSoap.java
public class CallSoap
{
public final String SOAP_ACTION = "http://tempuri.org/Add";
public final String OPERATION_NAME = "Add";
public final String WSDL_TARGET_NAMESPACE = "http://tempuri.org/";
public final String SOAP_ADDRESS = "url";
public CallSoap()
{
}
public String Call(int a,int b)
{
SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,OPERATION_NAME);
PropertyInfo pi=new PropertyInfo();
pi.setName("a");
pi.setValue(a);
pi.setType(Integer.class);
request.addProperty(pi);
pi=new PropertyInfo();
pi.setName("b");
pi.setValue(b);
pi.setType(Integer.class);
request.addProperty(pi);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS);
Object response=null;
try
{
httpTransport.call(SOAP_ACTION+OPERATION_NAME, envelope);
response = envelope.getResponse();
}
catch (Exception exception)
{
response=exception.toString();
}
return response.toString();
}
请帮助我。提前谢谢。
【问题讨论】:
-
我知道这个问题已经得到解答,但是打开我的 Wi-Fi 为我解决了这个问题
Exception。我尝试将其发布为答案,但我认为它符合条件的观点已被否决。
标签: android web-services soap