我在大约10个巨大的日子里度过了可怕的时光:(我想我在互联网上阅读了所有相关主题。但到目前为止失败了。这是我的情况:
我使用c#(.asmx)编写了一个Web服务,有一个用于测试我的连接的Web方法
namespace KaziKazanPortal
{
[WebService(Namespace = "http://tempuri.org/")]
public class KaziKazanWebService : System.Web.Services.WebService
{
[WebMethod]
public string SayHello()
{
return "HELLO MAN!";
}
}
}
然后我有一个Android应用程序在eclipse编码,你猜。我正在使用ksoap2.jar库来处理soap操作。我通过创建一个名为“SoapComHandler”的类和一个名为“CommunicateService()”的方法来分离发送和请求soap对象。这是我的android代码:
public class SoapComHandler {
private static final String NAMESPACE = "http://tempuri.org/";
private static final String MAIN_REQUEST_URL = "http://10.0.2.2:18446/KaziKazanWebService.asmx?WSDL";
private static final String SOAP_ACTION = "http://tempuri.org/SayHello";
private static String METHOD_NAME1 = "SayHello";
String retval = "";
public String CommunicateService() {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME1);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
envelope.dotNet = true;
try {
HttpTransportSE androidHttpTransport = new HttpTransportSE(
MAIN_REQUEST_URL, 100000);
androidHttpTransport.call(SOAP_ACTION, envelope);
Object result = (Object) envelope.getResponse();
if (result != null) {
retval = result.toString();
} else {
retval = "null";
}
} catch (Exception e) {
e.printStackTrace();
}
return retval;
}
}
我还禁用了Windows防火墙。我从visual studio 2013服务运行服务运行正常。我已经从usb插上了手机。我的笔记本电脑和手机都通过无线连接到同一无线调制解调器。然后我尝试连接模拟器和实际设备的网址"http://10.0.2.2"
,我面对着
我觉得这很正常:我访问iis服务器... 但 当我调试代码时,行为“androidHttpTransport.call(SOAP_ACTION,envelope);” 抛出错误 “org.ksoap2.transport.HttpResponseException:HTTP请求失败,HTTP状态:400” 我该怎么做才能解决这个问题?