这是我的curl命令的代码片段,我试图在eclipse中运行:
Those
我希望得到一个json输出,如下所示:
ProcessBuilder pb = new ProcessBuilder(
"curl",
"-XPOST",
"curl https://login.xyz.com/v1/oauth/token -H \"Accept: application/json\" --data 'client_id=<clientId>' --data 'client_secret=<clientSecret>' --data 'redirect_uri=localhost' --data 'code=<code>' ");
pb.redirectErrorStream(true);
Process p = pb.start();
InputStream is = p.getInputStream();
BufferedReader r = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String line = null;
while ((line=r.readLine()) != null) {
System.out.println(line);
}
但是我得到了这样的输出:
{"data":
{
"sfEntityType":"Token",
"accessToken":<token>,
"expiryTime":<time in seconds>
},
"status":{"succeeded":true}
}
如何解决此问题?
答案 0 :(得分:0)
为了以一种易于阅读的方式从curl获取输出,您应该使用-w标志,然后在引号中指定您需要的内容:
-w"Time spent: %{time_total} Local IP: %{local_ip} Local Port: %{local_port} Size download: %{size_download} Remote IP: %{remote_ip} Remote port: %{remote_port} Speed upload: %{speed_upload} Bps "
特别是在Linux上,您需要在预期的最后一个字符后留下一个尾随空格。
答案 1 :(得分:0)
卷曲:(1)协议&#34;卷曲https&#34; libcurl中不支持或禁用 因为您使用的卷曲包不支持https协议。只需在命令行中键入curl -V并查看列出的协议。
下载并安装启用了SSL的不同libcurl包。