gpt4 book ai didi

使用 ex.getMessage() 打印时,androidHttpTransport.call(...,...) 抛出空异常

转载 作者:行者123 更新时间:2023-11-29 18:14:30 27 4
gpt4 key购买 nike

我从使用 eclipse 开发的 andriod 应用程序调用 webservice,但在调用时出现异常 androidHttpTransport.call(SOAP_ACTION, 信封);

ex.getMessage() 打印“空”异常消息

在我指定的 list 文件中

 <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

完整代码如下

///////////////////
public class Yasir1Activity extends Activity {
TextView tv;



private final String NAMESPACE = "http://www.webserviceX.NET/";
private final String URL = "http://www.webservicex.net/ConvertWeight.asmx";
private final String SOAP_ACTION = "http://www.webserviceX.NET/ConvertWeight";
private final String METHOD_NAME = "ConvertWeight";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv=(TextView)findViewById(R.id.txt);

String msg="";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
String weight = "3700";
String fromUnit = "Grams";
String toUnit = "Kilograms";

PropertyInfo weightProp =new PropertyInfo();
weightProp.setName("Weight");
weightProp.setValue(weight);
weightProp.setType(double.class);
request.addProperty(weightProp);

PropertyInfo fromProp =new PropertyInfo();
fromProp.setName("FromUnit");
fromProp.setValue(fromUnit);
fromProp.setType(String.class);
request.addProperty(fromProp);

PropertyInfo toProp =new PropertyInfo();
toProp.setName("ToUnit");
toProp.setValue(toUnit);
toProp.setType(String.class);
request.addProperty(toProp);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);

HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try
{
msg="before call";
androidHttpTransport.call(SOAP_ACTION, envelope); //throwing exception
msg+="call success";


SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
//Log.i("myApp", response.toString());
//TextView tv = new TextView(this);
msg+=response.toString();
tv.setText(response.toString());//weight+" "+fromUnit+" equal "+response.toString()+ " "+toUnit);

}
catch(SocketException ex)
{
msg+="Error on soapPrimitiveData() " + ex.getMessage();
ex.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
msg += "Exception " +e.getMessage(); //"Exception null" is printing
}


tv.setText( msg);

}
}

最佳答案

我遇到了同样的问题。我得到一个空异常,因为我在主线程中尝试。 Honeycomb SDK 或更高版本的问题。 http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html

解决方案,在新线程中运行进程。

您好!

关于使用 ex.getMessage() 打印时,androidHttpTransport.call(...,...) 抛出空异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8924882/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com