KSOAP:「org.ksoap2.serialization.soapprimitive」例外問題
-
26-10-2019 - |
質問
WebServiceに電話をかけているときに問題があります。サーバーに.NET Webサービスがあり、KSOAP(KSOAP2-Android-Assembly-2.5.7-Jar-with-dependicies.jar)を使用しています。プログラムを実行している間、「org.ksoap2.serialization.soapprimitive」という名前のランタイム例外が得られました。
リンクで読んだオプションを試してみました。 KSOAP2を使用してAndroidから.NET WebServiceを呼び出す方法は? と ksoap2 android-キャストクラスの例外(soapobject) しかし、私を助けません
これは私のコード:
try{
//Conexión a Web Service
SoapObject Solicitud = new SoapObject(NAMESPACE, METODO);
PropertyInfo sector = new PropertyInfo();
sector.setName("sector");
sector.setValue(sectorX.toString());
Solicitud.addProperty(sector);
SoapSerializationEnvelope Envoltorio = new SoapSerializationEnvelope (SoapEnvelope.VER12);
Envoltorio.dotNet = true;
Envoltorio.setOutputSoapObject (Solicitud);
HttpTransportSE TransporteHttp = new HttpTransportSE(URL);
TransporteHttp.call (SOAP_ACTION, Envoltorio);
//Obtencion de datos
SoapObject resultado = (SoapObject)Envoltorio.getResponse();
final String[] testValues = new String[resultado.getPropertyCount()];
final Number[] serie = new Number[resultado.getPropertyCount()];
for(int i= 0; i< resultado.getPropertyCount(); i++){
String x = "";
SoapObject wii = (SoapObject)resultado.getProperty(i);
x += wii.getPropertyAsString(1);
testValues[i] = wii.getPropertyAsString(1);
x.trim();
serie[i]=Integer.parseInt(x);
}
ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this, R.layout.lista_sectores, testValues);
final ListView LstOpciones = (ListView) findViewById(R.id.LstOpciones);
LstOpciones.setAdapter(adaptador);
LstOpciones.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View itemClicked,
int position, long id) {
// TODO Auto-generated method stub
TextView textview = (TextView)itemClicked;
String strText = textview.getText().toString();
seleccion.setText("Seleccionado: " + strText);
} catch (Exception e){
txtMensaje.setText(e.getMessage());
}
SectorXは、WSに与える文字列パラメーターです。
パラメーターと機能せずにWebサービスを試しました!問題は、パラメーターを送信するときです...私は推測します:/
解決
その名前の例外はありません。おそらくクラスキャストの例外が得られます。デバッグの場合、おそらくあなたの応答がソアポブジェクトであることがわかります。そのため、getPropertyまたはgetAttributeなどを使用します。ブレークポイントを設定すると、オブジェクトグラフを閲覧して手動でパースコードを組み立てることができます。
たぶん、Stacktraceをどこかに投稿してください。
他のヒント
あなたはのみ使用してみることができます」物体「soapobject」を使用する代わりに。わたしにはできる。それが役に立てば幸い。
所属していません StackOverflow