Преобразование запроса CURL в HTTP-запрос Java

у меня есть следующий запрос curl может кто-нибудь пожалуйста, подтвердите мне, что будет subesquest HTTP-запроса

      curl -u "Login-dummy:password-dummy" -H "X-Requested-With: Curl" "https://qualysapi.qualys.eu/api/2.0/fo/report/?action=list" -k

это будет что-то вроде ?

    String url = "https://qualysapi.qualys.eu/api/2.0/fo/report/";
    URL obj = new URL(url);
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();

    // optional default is GET
    con.setRequestMethod("GET"); ..... //incomplete

может ли кто-нибудь быть достаточно любезным, чтобы помочь мне полностью преобразовать вышеуказанный запрос curl в httpreq.

спасибо заранее.

Суви

3 ответов


существует множество способов достичь этого. Ниже один простейший на мой взгляд, согласитесь, что он не очень гибкий, но работает.

import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

import org.apache.commons.codec.binary.Base64;

public class HttpClient {

    public static void main(String args[]) throws IOException {
        String stringUrl = "https://qualysapi.qualys.eu/api/2.0/fo/report/?action=list";
        URL url = new URL(stringUrl);
        URLConnection uc = url.openConnection();

        uc.setRequestProperty("X-Requested-With", "Curl");

        String userpass = "username" + ":" + "password";
        String basicAuth = "Basic " + new String(new Base64().encode(userpass.getBytes()));
        uc.setRequestProperty("Authorization", basicAuth);

        InputStreamReader inputStreamReader = new InputStreamReader(uc.getInputStream());
        // read this input

    }
}

Я не уверен, что HttpURLConnection ваш лучший друг здесь. Я думаю Apache HttpClient является лучшим вариантом здесь.

на всякий случай вы должны использовать HttpURLConnection, вы можете попробовать эти ссылки:

вы устанавливаете имя пользователя / пароль, параметр HTTP-заголовка и игнорируете проверку сертификата SSL.

HTH


ниже работал для меня:

Authenticator.setDefault(new MyAuthenticator("user@account","password"));

-------
public MyAuthenticator(String user, String passwd){
    username=user;
    password=passwd;
}