将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。

提前致谢。

苏维

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

 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-Header选项并忽略SSL证书validation。

  • 如何设置用户名/密码检查此线程: 连接到需要使用Java进行身份validation的远程URL
  • 如何设置eader选项看看这个线程: 如何修改HttpUrlConnection的头
  • 如何忽略SSL证书validation在此处描述http://www.obsidianscheduler.com/blog/ignoring-self-signed-certificates-in-java 。

HTH

以下为我工作:

 Authenticator.setDefault(new MyAuthenticator("user@account","password")); ------- public MyAuthenticator(String user, String passwd){ username=user; password=passwd; }