我的java代码
SoapObject remoteUser = new SoapObject(NAMESPACE, "RemoteUser");
remoteUser.addProperty("UserLogin", "ws_admin");
remoteUser.addProperty("UserPassword", "Password1");
SoapObject userContact = new SoapObject(NAMESPACE, "UserContact");
userContact.addProperty("UserLogin", "sqa101");
userContact.addProperty("UserPassword", "Password1");
request.addSoapObject(remoteUser);
request.addSoapObject(userContact);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
webResponse = response.toString();
这是我得到的错误:08-19 09:58:35.690:W/System。err(737):SoapFault-faultcode:“SOAP-ENV:Server”faultstring:“3001:未知用户试图执行消息类型UserAuthenticationRequest。需要身份验证。”faultactor:“null”详细信息:org。kxml2.kdom。Node@40585a08
任何帮助都将不胜感激。
更新:我找到了答案。问题是我使用的格式。以下代码有效。
PropertyInfo remoteUser =new PropertyInfo();
remoteUser.setName("RemoteUser");
SoapObject login = new SoapObject();
login.addProperty("UserLogin", "admin");
login.addProperty("UserAuthenticator", "Password");
remoteUser.setValue(login);
remoteUser.setType(String.class);
request.addProperty(remoteUser);
PropertyInfo userContact =new PropertyInfo();
userContact.setName("UserContact");
SoapObject login2 = new SoapObject();
login2.addProperty("UserLogin", "username");
login2.addProperty("UserPassword", "Password");
userContact.setValue(login2);
userContact.setType(String.class);
request.addProperty(userContact);
试试这个,
public SoapObject GetMethodDataWithParameter(String URL , String SoapAction ,
String WebService , String MethodName ,
String ParameterName[] , String ParameterValue[])
{
WebServiceConfig objWSConfig = new WebServiceConfig();
int ArryIndex = 0;
SoapObject resultsRequestSOAP = null ;
try
{
SoapObject request = new SoapObject(ws_Namespace,ws_Method);
for(ArryIndex = 0 ; ArryIndex < ParameterName.length ; ArryIndex ++)
{
PropertyInfo ParaObj = new PropertyInfo();
ParaObj.type = PropertyInfo.OBJECT_CLASS;
ParaObj.namespace = ws_Namespace;
ParaObj.setName(ParameterName[ArryIndex].toString());
ParaObj.setValue(ParameterValue[ArryIndex].toString());
request.addProperty(ParaObj);
}
System.setProperty("http.keepAlive", "false");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
envelope.dotNet = true;
//envelope.encodingStyle = SoapSerializationEnvelope.XSD;
envelope.setAddAdornments(true);
HttpTransportSE androidHttpTransport = new HttpTransportSE(ws_URL);
androidHttpTransport.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
try
{
androidHttpTransport.call(ws_SOAPAction , envelope);
}
catch(SocketException se)
{
ERRORMSG = "Error in network connection." ;
Log.e(TAG, "Error in network connection.");
return resultsRequestSOAP;
}
androidHttpTransport.debug = true;
resultsRequestSOAP = (SoapObject) envelope.bodyIn;
}
catch (OutOfMemoryError e)
{
e.printStackTrace();
ERRORMSG = "Application running in out of memory.." ;
Log.e(TAG , ERRORMSG);
return resultsRequestSOAP;
}
catch(SocketException e)
{
e.printStackTrace();
ERRORMSG = "Error in network connection." ;
Log.e(TAG, ERRORMSG);
return resultsRequestSOAP;
}
catch (Exception e)
{
ERRORMSG = "Error while getting data." ;
Log.e(TAG, ERRORMSG);
e.printStackTrace();
}
return resultsRequestSOAP;
}
希望对你有帮助。
问题内容: 我对如何通过Java向Web服务发出请求感到困惑。 到目前为止,我唯一了解的是Web服务使用xml结构化消息,但是我仍然不太了解如何构造请求。 基本上,我必须将2个参数发送到Web服务,而作为回报,我期望另外两个参数。 我猜有些罐子可以完成大部分工作,但是我没有在网上找到任何罐子。有人可以解释一下这个依据吗? 问题答案: SOAP请求是一个XML文件,包含要发送到服务器的参数。 SOA
我猜有一些罐子可以做大部分的工作,但我没有在网上找到任何。谁能给我解释一下理由吗?
问题内容: 我在Java中有一个简单的Web服务: 我已经在以下Web服务中进行了测试:(http:// localhost:8080 / WSServer / Catalogo_V1?Tester) 方法返回 SOAP响应 好的,之后,我在目标C中完成了此请求: ConfigViewController.h ConfigViewController.m 我的控制台显示: 问题答案: 根据您从控制
这是我的模型课 @root(name=“s:envelope”)@namespace(前缀=“s”,reference=“http://schemas.xmlsoap.org/soap/envelope/”) 公共类信封{ 公共类查询消息{ } @namespaceList({@namespace(prefix=“a”,reference=“http://schemas.datacontract.
我已经用soap请求启动了一个新项目,我遵循了一些关于它的教程,但它并没有像它应该做的那样好。 我将这部分代码用于请求: 它给了我这个错误: SoapFault异常:[HTTP]不支持的媒体类型堆栈跟踪: 所有参数的类型都可以根据我得到的留档。和php部分似乎可以对我和我找到的所有教程。 我想知道这是否是头部问题或类似的问题。 WSDL在[这里](https://smarteye.ariadnex
我需要从wsdl(使用wsdl url)为一个操作创建SOAP请求xml。我从一个web服务调用得到一个响应,我需要从这个响应中获取一些值,并将其添加到另一个web服务Soap请求中,然后再次执行一个web服务调用。因此,为了向soap请求添加新值,我需要获得完整的soap请求xml。这就是为什么我问如何从WSDD获得soap请求xml。我不能使用SoapUI,因为它每次都是动态的,所以我需要编写