gpt4 book ai didi

android - Webservice 返回 anyType{} android

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

我是编程界的新手,所以我只需要一些帮助。我必须在 android 上使用 web 服务。我已经做了一个工作正常的,但是当我必须传递一个参数时,问题就发生了。我不确定我做错了什么。

这是 AsyncTask 的代码:

public class PegaHorarioProfessorTask extends AsyncTask<Object, Object, String> {

private static final String NAMESPACE = "http://tempuri.org/";
private static String URL = "http://fatec.aied.com.br/publico.asmx?WSDL"; //"10.68.76.4/publico.asmx?WSDL"; // http://fatec.aied.com.br/publico.asmx?WSDL
private static final String SOAP_ACTION = "http://tempuri.org/HorarioProfessor";

@Override
public String doInBackground(Object... objects) {
String frase = null;

SoapObject soap = new SoapObject(NAMESPACE, "HorarioProfessor");

String id = "11";

PropertyInfo profId =new PropertyInfo();
profId.setName("Id");
profId.setValue(id);
profId.setType(String.class);
soap.addAttribute("Id", id);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(soap);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

SoapObject result = null;

try {

androidHttpTransport.call(SOAP_ACTION, envelope);
SoapObject resultado1 = (SoapObject)envelope.getResponse();

//result = (SoapObject) envelope.bodyIn;
//result.getProperty(0);

if (result != null) {
Log.i("Result", result.toString());
return result.toString();
}

} catch (Exception e) {
e.printStackTrace();
}
return result.toString();

}
}

因此,我传递了 ID 11,它返回了 2 个字符串。问题是:除了“anyType{}”之外,它不返回任何内容,而且我不确定如何接收两个字符串。我注释了两行,因为我不确定通过 envelope.bodyIn 或 envelope.getResponse() 获得结果是否更好。

也许,有必要发布接收结果的 Activity :

public class ActivityHorarioProfessor extends ActionBarActivity {

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_horario_professor);

String[] aux = null;

Intent intent = this.getIntent();
Professores professor = (Professores) intent.getSerializableExtra("professorSelecionado");
if(professor!=null) {
PegaHorarioProfessorTask prof = new PegaHorarioProfessorTask();
Log.i("Número", String.valueOf(prof));
String auxi = null;
try {
auxi = prof.execute().get().toString();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}

Log.i("Auxi", String.valueOf(auxi));
}
else {
Log.i("It's", "WRONG");
}

}
}

它只是返回一个空的 (anyType{}) 答案。

最佳答案

It just gives back an empty (anyType{}) answer.

这意味着没有任何数据返回。

但是,如果您不想获得 anyType{} 而是一个空字符串:

代替:

result.getProperty(0);

使用:

result.getPrimitivePropertyAsString(0);

这是一个关于如何使用 KSOAPwebservice 获取数据的示例(如果您期望 String 作为响应):

public static String getDataAsString(){
String responseString = "";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty(KEY, value);
SoapSerializationEnvelope envelope = getSoapSerializationEnvelope(request);
HttpTransportSE httpTransportSE = getHttpTransportSE();
try {
httpTransportSE.call(ACTION_NAME, envelope);
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
responseString = response.toString();

} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (SoapFault soapFault) {
soapFault.printStackTrace();
} catch (HttpResponseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

return responseString;
}

getSoapSerializationEnvelope 函数:

 public static final SoapSerializationEnvelope getSoapSerializationEnvelope(SoapObject request){
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.implicitTypes = true;
envelope.setAddAdornments(false);
envelope.setOutputSoapObject(request);

return envelope;
}

getHttpTransportSE 函数:

 public static final HttpTransportSE getHttpTransportSE(){
HttpTransportSE ht = new HttpTransportSE(URL);
ht.debug = true;
ht.setXmlVersionTag("<!--?xml version=\"1.0\" encoding= \"UTF-8\" ?-->");
return ht;
}

关于android - Webservice 返回 anyType{} android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30473909/

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