Forum Discussion

mansour's avatar
13 years ago

How to send request and get response in Java?

Hi guys..

I am trying to write simple code in java that will do the following:
1. Read WSDL url from user
2. List operations names
3. List fields names and types for each operation
4. Send request with malicious input
5. Print the response.

Anyone can help me with point 3, 4 and 5

Here is my code:
package test1;

import java.io.*;
import com.eviware.soapui.impl.wsdl.*;
import com.eviware.soapui.impl.wsdl.WsdlProject.*;
import com.eviware.soapui.impl.WsdlInterfaceFactory;
import com.eviware.soapui.model.iface.Operation;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;

public class Main {

static WsdlProject wsdlProject;
static List<WsdlRequest> wsdlRequests = new ArrayList<WsdlRequest>();

public static void main(String[] args) throws Exception {

System.out.println("Enter WSDL URL: ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String wsdlUrl = null;
try {
wsdlUrl = br.readLine();
} catch (IOException e) {
System.out.println("Error!");
System.exit(1);
}
if ((wsdlUrl.length() < 10) || (wsdlUrl == null)) {
System.err.println("Invalid input");
System.exit(1);
}

wsdlProject = new WsdlProject();
WsdlInterface[] wsdlInterface = WsdlInterfaceFactory.importWsdl(wsdlProject, wsdlUrl, true);

for (WsdlInterface wsdlInterface1 : wsdlInterface) {
System.out.println("No. of operations = " + wsdlInterface1.getOperationCount());

for (Operation operation : wsdlInterface1.getOperationList()) {
System.out.println("-------------------------------------");
System.out.println("Operation : " + operation.getName());

WsdlOperation wsdlOperation = (WsdlOperation) operation;
String origRequest = wsdlOperation.createRequest(true);
System.out.println("Origin Request: \n" + origRequest);

String maliciousInput = "foo' OR TRUE--";
origRequest = Pattern.compile("[?]").matcher(origRequest).replaceAll(maliciousInput);
System.out.println("Vulnerable Request: \n" + origRequest);
WsdlRequest wsdlRequest = wsdlOperation.addNewRequest(origRequest);
wsdlRequests.add(wsdlRequest);
}
}
}
}
No RepliesBe the first to reply