将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; }