4

i need to convert the following curl command into java command.

$curl_handle = curl_init ();

curl_setopt ($curl_handle, CURLOPT_URL,$url);`enter code here`
curl_setopt ($curl_handle, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($curl_handle, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($curl_handle, CURLOPT_POST, 1);
curl_setopt ($curl_handle, CURLOPT_POSTFIELDS, $postfields);

//echo $postfields;

$curl_result = curl_exec ($curl_handle) or die ("There has been a CURL_EXEC error");
rahul pasricha
  • 901
  • 1
  • 13
  • 32
Kashif Ali
  • 107
  • 1
  • 2
  • 9

2 Answers2

6

Http(s)UrlConnection may be your weapon of choice:

public String sendData() throws IOException {
    // curl_init and url
    URL url = new URL("http://some.host.com/somewhere/to/");
    HttpURLConnection con = (HttpURLConnection) url.openConnection();

    //  CURLOPT_POST
    con.setRequestMethod("POST");

    // CURLOPT_FOLLOWLOCATION
    con.setInstanceFollowRedirects(true);

    String postData = "my_data_for_posting";
    con.setRequestProperty("Content-length", String.valueOf(postData.length()));

    con.setDoOutput(true);
    con.setDoInput(true);

    DataOutputStream output = new DataOutputStream(con.getOutputStream());
    output.writeBytes(postData);
    output.close();

    // "Post data send ... waiting for reply");
    int code = con.getResponseCode(); // 200 = HTTP_OK
    System.out.println("Response    (Code):" + code);
    System.out.println("Response (Message):" + con.getResponseMessage());

    // read the response
    DataInputStream input = new DataInputStream(con.getInputStream());
    int c;
    StringBuilder resultBuf = new StringBuilder();
    while ( (c = input.read()) != -1) {
        resultBuf.append((char) c);
    }
    input.close();

    return resultBuf.toString();
}

I'm not quite sure about the HTTPS_VERIFYPEER-thing, but this may give you a starting point.

Farshid Shekari
  • 1,519
  • 3
  • 20
  • 43
Jan Wegner
  • 84
  • 1
1

Have a look at the java.net.URL and java.net.URLConnection libraries.

URL url = new URL("yourUrl.com");

Then use a an InputStreamReader & BufferedReader.

More information in Oracles example: http://docs.oracle.com/javase/tutorial/networking/urls/readingWriting.html

This might also help: How to use cURL in Java?

Community
  • 1
  • 1
Oli Bates
  • 21
  • 4