curl -u username:password命令请求url,怎么转换成http进行网络请求呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了curl -u username:password命令请求url,怎么转换成http进行网络请求呢?相关的知识,希望对你有一定的参考价值。

参考技术A 最近在工作中遇到一个问题,文档中用curl表示请求网络,比如curl -u abc:123 www.abcd.com,以为后面的abc:123就是一默认的参数,多次尝试请求都失败了,就花了一点时间研究了一下,

我以HttpUrlConnection为例子,比如 curl -u username:password “www.trczn.com:

1.创建HttpUrlConnection对象:

String surl = "https://api.conviva.com/insights/2.4/metrics.json?filter_ids=2824&metrics=quality_summary&day=2017-10-1";

URL realUrl = new URL(surl);

//你的用户名和密码

//此处就是curl -u user:password 转换成http请求的格式

String name = "your username";

String password = "your password";

String authString = name + ":" + password;

System.out.println("auth string: " + authString);

//Base64编码

byte[] authEncBytes = Base64.encodeBase64(authString.getBytes("utf-8"));

String authStringEnc = new String(authEncBytes);

//Authorization格式,注意“Basic ” 有个空格

conn.setRequestProperty("Authorization", "Basic " + authStringEnc);

// 发送POST请求必须设置如下两行

conn.setDoOutput(true);

conn.setDoInput(true);

conn.connect();

if (conn.getResponseCode() == 200)

// 获取URLConnection对象对应的输出流

System.out.println("网络请求成功!");

//开始获取数据

BufferedInputStream bis = new BufferedInputStream(conn.getInputStream());

ByteArrayOutputStream bos = new ByteArrayOutputStream();

int len;

byte[] arr = new byte[1024];

while((len=bis.read(arr))!= -1)

bos.write(arr,0,len);

bos.flush();



bos.close();

return bos.toString("utf-8");

else

System.out.println("网络请求失败,响应码是"+conn.getResponseCode()+",message是"+conn.getResponseMessage()+"DETAILS:");



catch (UnsupportedEncodingException e1)

e1.printStackTrace();

catch (MalformedURLException e1)

e1.printStackTrace();

catch (IOException e1)

e1.printStackTrace();

catch (Exception e)

System.out.println("发送 POST 请求出现异常!"+e);

e.printStackTrace();



//使用finally块来关闭输出流、输入流

finally

try

if(out!=null)

out.close();



if(in!=null)

in.close();





catch(IOException ex)

ex.printStackTrace();





return result;

以上是关于curl -u username:password命令请求url,怎么转换成http进行网络请求呢?的主要内容,如果未能解决你的问题,请参考以下文章

curl的基本授权命令

将命令 cURL 转换为 HTTP 请求

将 curl 命令转换为 jQuery $.ajax()

php调接口

使用 curl 使用摘要测试基本 http 身份验证

使用 curl PHP 登录 Instagram