import java.rmi.RemoteException
import org.apache.axis.client.Call
import org.apache.axis.client.Service
import org.apache.axis.message.PrefixedQName
import org.apache.axis.message.SOAPHeaderElement
import com.cezanne.golden.user.Exception
import com.cezanne.golden.user.UserManagerServiceProxy
import javax.xml.namespace.QName
import java.net.MalformedURLException
import javax.xml.rpc.ServiceException
import javax.xml.soap.Name
import javax.xml.soap.SOAPException
public class testWebService {
public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException
{
//标识Web Service的具体路径
String endpoint = "WebService服务地址"
// 创建 Service实例
Service service = new Service()
// 通过Service实例创建Call的实例
Call call = (Call) service.createCall()
//将Web Service的服务路径加入到call实例之中.
call.setTargetEndpointAddress( new java.net.URL(endpoint) )//为Call设置服务的位置
// 由于需要认证,故需要设置调用的SOAP头信息。
Name headerName = new PrefixedQName( new QName("发布的wsdl里的targetNamespace里的url", "string_itemName") )
org.apache.axis.message.SOAPHeaderElement header = new SOAPHeaderElement(headerName)
header.addTextNode( "blablabla" )
call.addHeader(header)
//SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("发布的wsdl里的targetNamespace里的url", "SoapHeader")
//soapHeaderElement.setNamespaceURI("发布的wsdl里的targetNamespace里的url")
//try
//{
//soapHeaderElement.addChildElement("string_itemName").setValue("blablabla")
//}
//catch (SOAPException e)
//{
//e.printStackTrace()
//}
//call.addHeader(soapHeaderElement)
//调用Web Service的方法
org.apache.axis.description.OperationDesc oper
org.apache.axis.description.ParameterDesc param
oper = new org.apache.axis.description.OperationDesc()
oper.setName("opName")
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg0"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName(", "string"), java.lang.String.class, false, false)
param.setOmittable(true)
oper.addParameter(param)
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg1"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName(", "string"), java.lang.String.class, false, false)
param.setOmittable(true)
oper.addParameter(param)
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg2"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName(", "string"), java.lang.String.class, false, false)
param.setOmittable(true)
oper.addParameter(param)
oper.setReturnType(new javax.xml.namespace.QName(", "string"))
oper.setReturnClass(java.lang.String.class)
oper.setReturnQName(new javax.xml.namespace.QName("", "return"))
oper.setStyle(org.apache.axis.constants.Style.WRAPPED)
oper.setUse(org.apache.axis.constants.Use.LITERAL)
oper.addFault(new org.apache.axis.description.FaultDesc(
new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url", "Exception"),
"Exception",
new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url", "Exception"),
true
))
call.setOperation( oper )
call.setOperationName(new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url", "opName"))
//调用Web Service,传入参数
String res = ( String ) call.invoke( new Object[]("arg0","arg1"))
System.out.println("===============")
return res
}
/**
* @param args
*/
public static void main(String[] args) {
try {
System.out.println(getResult())
} catch (MalformedURLException e) {
e.printStackTrace()
} catch (RemoteException e) {
e.printStackTrace()
} catch (ServiceException e) {
e.printStackTrace()
} catch (SOAPException e) {
e.printStackTrace()
}
}
}
用c语言实现文件自动下载并且解压1.自动下载 http://abc.com/test.rar 也可以下载FTP://abc.com/test.rar2.下载完成后自动解压到本路径下相同的文件夹里面,如:test.rar就是test文件夹3.如果test文件夹已经存在并且里面有内容就直接覆盖4.软件运行的时候提示用户输入存储路径5.下载过程中显示下载进度6.一个好的编程会在适当的地方加上适当的注释以上功能我已经用wget+winrar的做成批处理可以运行了,但是希望用C语言来实现先送50分,如果实现了在加送50分,不希望吧分数留给系统希望采纳