我试图在我的应用程序中使用retrofit来调用WSDL webservice
像这样
public static String callWebservice(String username,String password)
{
String soapMessage="<?xml version=\"1.0\" encoding=\"utf-8\"?>"+
"<Envelope xmlns=\"http://schemas.xmlsoap.org/soap/envelope/\">"+
"<Body>"+
"<AuthenticateUser xmlns=\"http://tempuri.org/\">"+
"<userName>"+username+"</userName>"+
"<password>"+Helper.md5(password).toUpperCase(Locale.getDefault())+"</password>"+
"</AuthenticateUser>"+
"</Body>"+
"</Envelope>";
RequestInterceptor requestInterceptor = new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
// request.addHeader("User-Agent", "Retrofit-Sample-App");
request.addHeader("SOAPAction", "http://tempuri.org/IAuthenticate/AuthenticateUser");
request.addHeader("Content-Type", "application/soap+xml;charset=utf-8");
request.addHeader("Content-Type", "text/xml;charset=utf-8");
}
};
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(Constants.WEBSERVICE_URL)
.setRequestInterceptor(requestInterceptor)
.build();
LoginApi loginApi=restAdapter.create(LoginApi.class);
loginApi.getLogin(soapMessage,new Callback<String>()
{
@Override
public void success(String arg0, Response arg1)
{
Helper.Log("Response==>", arg0);
}
@Override
public void failure(RetrofitError arg0)
{
Helper.Log("error==>", arg0.toString());
} …Run Code Online (Sandbox Code Playgroud)