尝试通过Java设置用户名和密码向SOAP WsdlRequest提交请求时的Cl
发布时间:2020-12-15 05:00:56 所属栏目:Java 来源:网络整理
导读:我的目的是使用给定的wsdl URL创建一个Soap UI项目,保存它并通过 Java方法发送所有请求.我收到org.apache.http.client.ClientProtocolException …..由以下原因引起:org.apache.http.ProtocolException:当我尝试通过设置操作的用户名和密码来提交请求时,Co
我的目的是使用给定的wsdl URL创建一个Soap UI项目,保存它并通过
Java方法发送所有请求.我收到org.apache.http.client.ClientProtocolException …..由以下原因引起:org.apache.http.ProtocolException:当我尝试通过设置操作的用户名和密码来提交请求时,Content-Length标头已经出现错误.找到我的Java方法来发送请求.
public void runSoap() throws Exception { String projectFile = "SoapUIProjects/TestProjectA-soapui-project.xml"; SoapUI.setSoapUICore(new StandaloneSoapUICore(true)); WsdlProject project = new WsdlProject(projectFile); int c = project.getInterfaceCount(); System.out.println("The interface count ="+c); for(int i=0;i<c;i++) { WsdlInterface wsdl = (WsdlInterface) project.getInterfaceAt(i); String soapVersion = wsdl.getSoapVersion().toString(); int opc = wsdl.getOperationCount(); String result=""; for(int j=0;j<opc;j++) { WsdlOperation op = wsdl.getOperationAt(j); String opName = op.getName(); System.out.println("OPERATION:"+opName); WsdlRequest req = op.getRequestByName("Req_"+soapVersion+"_"+opName); //Assigning correct u/p to an operation: Generate if(opName.equals("Generate")) { System.out.println("The operation is Generate."); req.setUsername("u1");//Setting username req.setPassword("u1");//Setting password } WsdlSubmitContext wsdlSubmitContext = new WsdlSubmitContext(req); WsdlSubmit<?> submit = (WsdlSubmit<?>) req.submit(wsdlSubmitContext,false); Response response = submit.getResponse(); result = response.getContentAsString(); System.out.println("The result ="+result); } } } 另请参阅附图.有人可以告诉我哪里出错了以及如何解决这个问题? 解决方法
我得到了我的问题的答案.
我必须明确地和编程地设置’授权类型’,这样做的代码是这样的 – req.setAuthType( “抢先”); 通过这个,请求被发送,我没有任何例外. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |