HttpUrlConnection支持Header,Body传值,支持Multipart上传文件

 Http请求之基于HttpUrlConnection,支持Header,Body传值,支持Multipart上传文件:

public static String post(String actionUrl, Map<String, String> headParams,
			Map<String, String> params,
			Map<String, File> files) throws IOException {

		String BOUNDARY = java.util.UUID.randomUUID().toString();
		String PREFIX = "--", LINEND = "\r\n";
		String MULTIPART_FROM_DATA = "multipart/form-data";
		String CHARSET = "UTF-8";

		URL uri = new URL(actionUrl);
		HttpURLConnection conn = (HttpURLConnection) uri.openConnection();
		conn.setReadTimeout(30 * 1000); // 缓存的最长时间
		conn.setDoInput(true);// 允许输入
		conn.setDoOutput(true);// 允许输出
		conn.setUseCaches(false); // 不允许使用缓存
		conn.setRequestMethod("POST");
		conn.setRequestProperty("connection", "keep-alive");
		conn.setRequestProperty("Charsert"
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: HttpURLConnection是Java中用于发送HTTP请求的类。设置header可以通过调用HttpURLConnection的setRequestProperty方法来实现。例如: ``` HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("User-Agent", "Mozilla/5."); ``` 其中,setRequestMethod方法设置请求方法为GET,setRequestProperty方法设置User-Agent头部信息为Mozilla/5.。可以根据需要设置其他的头部信息。 ### 回答2: HttpURLConnection 是 Java 中用于进行 HTTP 连接的类,可以通过它来访问 WEB 服务器中的资源。在实际使用中,我们经常需要在请求中添加一些 HEADER 来携带一些额外的信息或认证信息。下面我们来讨论一下如何使用 HttpURLConnection 设置 header。 在 HttpURLConnection 中,我们可以使用 setRequestProperty 方法来设置请求中的 HEADER。例如,如果我们要设置 User-Agent,就可以这样: ``` URL url = new URL("http://www.example.com"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); // 设置 User-Agent connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"); // 发送请求 connection.connect(); ``` 以上代码中,我们使用了 setRequestProperty 方法来设置了 User-Agent HEADER,将其设置为了 Chrome 浏览器的 HEADER 。设置好之后,再发送请求即可。 除了设置 User-Agent,我们还可以设置其他的 HEADER,例如: ``` // 设置 Accept-Language connection.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3"); // 设置 Content-Type connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); // 设置 Authorization String username = "admin"; String password = "123456"; String userpass = username + ":" + password; String basicAuth = "Basic " + new String(Base64.getEncoder().encode(userpass.getBytes())); connection.setRequestProperty("Authorization", basicAuth); ``` 以上代码分别设置了 Accept-Language、Content-Type 和 Authorization HEADER。其中,Authorization 头部使用了 HTTP 基本认证的方式,将用户名和密码拼接成一个字符串,并进行 BASE64 编码后递给服务端。 需要注意的是,如果有多个 HEADER 需要设置,可以多调用几次 setRequestProperty 方法即可。同时,如果请求体中也含有 HEADER,则需要使用 OutputStream 将数据写入请求体中。 以上就是关于如何使用 HttpURLConnection 设置 HEADER 的详细介绍。在实际使用中,根据需求合理设置 HEADER,可以更好地访问 WEB 服务器中的资源。 ### 回答3: HttpURLConnection是Java标准库中用于HTTP客户端编程的类,它可以向HTTP服务器发送请求和接收响应。在使用HttpURLConnection发送请求时,我们可以为HttpURLConnection设置具体的请求参数,如请求URL、请求方式、请求头等信息。 设置请求头是HttpURLConnection发送请求时比较常用的操作之一,它可以增加HTTP请求的安全性和自定义请求内容。设置请求头可以通过setRequestProperty方法来实现,该方法接受两个参数,第一个参数是请求头的名称,第二个参数是请求头的。 下面是一个示例代码,演示如何设置请求头: ``` URL url = new URL("http://www.example.com"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setRequestProperty("User-Agent", "Mozilla/5.0"); ``` 以上代码中,我们首先创建了一个URL对象,然后通过URL对象的openConnection方法创建了一个HttpURLConnection对象。接着,我们设置了HttpURLConnection对象的请求方法为GET,然后通过setRequestProperty方法设置了User-Agent请求头,该请求头一般用于告诉服务器发送请求的客户端信息。 除了User-Agent请求头之外,使用HttpURLConnection还可以设置很多其他的请求头,如Accept、Content-Type、Authorization等等。设置各种请求头的方法都是通过setRequestProperty方法来实现的,只需要入对应的请求头名称和请求头即可。 需要注意的是,HttpURLConnection默认使用UTF-8编码来发送请求和接收响应,如果需要使用其他编码方式,可以通过设置Content-Type请求头来实现。例如,如果需要使用GB2312编码来发送请求,可以添加如下请求头: ``` conn.setRequestProperty("Content-Type", "text/plain; charset=GB2312"); ``` 总之,设置请求头是在HttpURLConnection进行HTTP客户端编程时的一个重要操作,可以帮助我们发送自定义的请求内容和保证请求的安全性。需要根据具体的业务需求,选择合适的请求头和请求头
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值