14

我有以下 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。

提前致谢。

苏维

4

3 回答 3

18

有很多方法可以实现这一目标。在我看来,下面一个是最简单的,同意它不是很灵活但可以工作。

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

    }
}
于 2013-09-05T13:41:15.953 回答
3

我不确定HttpURLConnection你最好的朋友是否在这里。我认为Apache HttpClient是一个更好的选择。

以防万一你必须使用HttpURLConnection,你可以试试这个链接:

您正在设置用户名/密码、HTTP-Header 选项并忽略 SSL 证书验证。

高温高压

于 2013-09-05T13:15:55.353 回答
-1

下面为我​​工作:

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

-------
public MyAuthenticator(String user, String passwd){
    username=user;
    password=passwd;
}
于 2017-10-03T06:37:42.207 回答