我有以下CURL请求任何人都可以请确认我的子请求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
任何人都可以帮助我完全将上述卷曲请求转换为httpreq。
提前致谢。
苏维
答案 0 :(得分:16)
有很多方法可以实现这一目标。在我看来,一个是最简单的,同意它不是很灵活但是有效。
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
}
}
答案 1 :(得分:2)
我不确定HttpURLConnection
是否是你最好的朋友。我认为Apache HttpClient是一个更好的选择。
万一您必须使用HttpURLConnection
,可以尝试以下链接:
您正在设置用户名/密码,HTTP-Header选项并忽略SSL证书验证。
HTH
答案 2 :(得分:-1)
以下为我工作:
Authenticator.setDefault(new MyAuthenticator("user@account","password"));
-------
public MyAuthenticator(String user, String passwd){
username=user;
password=passwd;
}