直接代码:
import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.List; import java.util.Map; /** * http 工具类 */ public class HttpUtil { /* * * 调用: * HttpUtil.post(talkUrl, accessToken,"application/json", param); */ public static String post(String requestUrl, String accessToken, String params) throws Exception { String contentType = "application/x-www-form-urlencoded"; return HttpUtil.post(requestUrl, accessToken, contentType, params); } public static String post(String requestUrl, String accessToken, String contentType, String params) throws Exception { String encoding = "UTF-8"; if (requestUrl.contains("nlp")) { encoding = "GBK"; } return HttpUtil.post(requestUrl, accessToken, contentType, params, encoding); } public static String post(String requestUrl, String accessToken, String contentType, String params, String encoding) throws Exception { String url = requestUrl + "?access_token=" + accessToken; return HttpUtil.postGeneralUrl(url, contentType, params, encoding); } public static String postGeneralUrl(String generalUrl, String contentType, String params, String encoding) throws Exception { URL url = new URL(generalUrl); // 打开和URL之间的连接 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); // 设置通用的请求属性 connection.setRequestProperty("Content-Type", contentType); connection.setRequestProperty("Connection", "Keep-Alive"); connection.setUseCaches(false); connection.setDoOutput(true); connection.setDoInput(true); // 得到请求的输出流对象 DataOutputStream out = new DataOutputStream(connection.getOutputStream()); out.write(params.getBytes(encoding)); out.flush(); out.close(); // 建立实际的连接 connection.connect(); // 获取所有响应头字段 Map<String, List<String>> headers = connection.getHeaderFields(); // 遍历所有的响应头字段 for (String key : headers.keySet()) { System.err.println(key + "--->" + headers.get(key)); } // 定义 BufferedReader输入流来读取URL的响应 BufferedReader in = null; in = new BufferedReader( new InputStreamReader(connection.getInputStream(), encoding)); String result = ""; String getLine; while ((getLine = in.readLine()) != null) { result += getLine; } in.close(); System.err.println("result:" + result); return result; } }
...
相关推荐
`httputil`工具类是Java编程中常见的一种实用工具,主要用于简化HTTP请求的发送与响应的处理。在Web开发中,我们常常需要与服务器进行交互,获取或发送数据,这时`HttpUtils`就显得非常方便。下面将详细介绍`...
在测试类中,一般会创建一个`HttpUtils`实例,然后调用`sendGet`或`sendPost`方法,传入目标URL和(对于POST请求)参数。测试类的目的是验证工具类的功能是否正常工作,通常会打印服务器返回的响应数据。 `...
在"java-httputil.rar"的压缩包中,很可能包含了封装好的工具类或实用方法,简化了上述操作,使得开发者可以更方便地进行HTTP请求。通过学习和理解这些工具,开发者能够更高效地实现与服务器的通信,提高代码的...
本文将详细介绍如何使用`HttpServletRequest`对象在Java Servlet中获取这两种方式下的请求参数。 首先,GET请求通常用于从客户端获取少量数据,这些数据会附加到URL后面。在HTML表单中,当`method`属性设置为`GET`...
在实际的SpringBoot项目中,这些操作通常会封装在服务层或DAO层的类中,以供业务逻辑调用。你可以创建一个OkHttpService,提供get、post和uploadFile等方法,方便在其他组件中复用。 总结一下,SpringBoot结合...
3. 发送请求:携带请求参数(对于POST、PUT等有体的请求),将请求发送到服务器。 4. 处理响应:接收服务器返回的HTTP响应,提取响应状态码、响应头和响应体。 5. 错误处理:检查状态码,如果非200系列,通常表示...
在实际开发中,HttpClient通常与`HttpEntity`、`NameValuePair`等类一起使用,以处理请求的实体内容和参数。此外,注意HttpClient的线程安全问题,如果在多线程环境中使用,需要确保每个线程有自己的HttpClient实例...
3. **构建请求体**:创建MultipartEntity或RequestBody,添加文件数据,并可能包含其他参数如文件名、类型等。 4. **设置请求头**:设置Content-Type为multipart/form-data,以及其他必要的请求头信息。 5. **发送...
所以,为了方便使用,我们需要将公共的部分封装起来,然后只需要通过参数的方式对外暴露出诸如请求 Url,请求参数,Header 就可以了。 HTTPUtil 封装 var HTTPUtil = {}; / * GET 请求 */ HTTPUtil.get = ...
这样每次发送请求时,拦截器会自动处理认证头,避免在每个请求中重复编写相同的代码。 ```java public class BasicAuthInterceptor implements ClientHttpRequestInterceptor { private final String username; ...
在Spring Boot中,`@RequestBody`注解用于指示控制器方法参数应从请求体中获取数据,并将其转换为指定的Java对象。 例如,假设有一个名为`User`的Java类,要接收JSON化的`User`对象,控制器方法应该这样写: ```...
在本文提供的示例代码中,作者使用了一个简单的`HttpUtil`类来封装HTTP请求。你可以根据需要调整请求的超时时间、是否允许自动重定向以及用户代理等参数。 ```csharp public static string GetHtml(string url) { ...