您好我正在使用Eclipse开发android并尝试连接到.Net webservice。 webservice方法具有参数“usuario”和“password”,并返回一个布尔值。
我正在使用ksoap2库来调用web服务但我遇到了问题,当我尝试调用webservice时,我的应用程序崩溃了。
当我看到变量“transporte”的响应头时,它显示“HTTP / 1.1 500内部服务器错误”,所以我想我可能遇到参数或其他问题。我已经允许Android Manifest的互联网连接权限。
我在模拟器上运行应用程序。
这是我的代码:
public class EntrarActivity extends Activity {
///---Constantes para la invocación del servicio---
private static final String METHOD_NAME = "existeUsuario";
private static final String SOAP_ACTION = WebServiceConstants.NAMESPACE + EntrarActivity.METHOD_NAME;
///---Declaración de variables para consumir el servicio---
private SoapObject request;
private SoapSerializationEnvelope envelope;
private SoapPrimitive resultsRequestSoap;
///---Declaracion de variable para serializar/deserializar
Gson gson;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_entrar);
}
public void clicked_loginButton(View view)
{
String usuario = ((EditText)findViewById(R.id.editText_mail_entrar)).getText().toString();
String password = ((EditText)findViewById(R.id.editText_password_entrar)).getText().toString();
request = new SoapObject(WebServiceConstants.NAMESPACE, EntrarActivity.METHOD_NAME);
//---le agregamos los parametros---
request.addProperty("usuario", usuario);
request.addProperty("password", password);
envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true; //por que es .NET
envelope.setOutputSoapObject(request);
HttpTransportSE transporte = new HttpTransportSE(WebServiceConstants.URL);
try {
transporte.call(EntrarActivity.SOAP_ACTION, envelope);
resultsRequestSoap = (SoapPrimitive)envelope.getResponse();
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
String strJson = resultsRequestSoap.toString();
}
}
答案 0 :(得分:0)
尝试首先下载SoapUI并在SoapUI中构建请求。它允许您轻松调整输入 - 这将帮助您将其缩小到SOAP请求代码中的问题,或来自Web服务的响应。在SoapUI中获得请求后,您可以将Java SOAP请求转储到字符串并比较两者。有可能,您忘记了正在构建的SOAP请求中的某些内容。 SoapUI将通过添加服务来查询WSDL并构建示例请求:
http://<hostname>/webservice?WSDL
将模板生成的输出与发送到Web服务的内容进行比较。