`
uule
  • 浏览: 6358027 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

参数在Body里请求类HttpUtil

 
阅读更多

直接代码:

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工具类

    `httputil`工具类是Java编程中常见的一种实用工具,主要用于简化HTTP请求的发送与响应的处理。在Web开发中,我们常常需要与服务器进行交互,获取或发送数据,这时`HttpUtils`就显得非常方便。下面将详细介绍`...

    http发送Get和Post请求工具类

    在测试类中,一般会创建一个`HttpUtils`实例,然后调用`sendGet`或`sendPost`方法,传入目标URL和(对于POST请求)参数。测试类的目的是验证工具类的功能是否正常工作,通常会打印服务器返回的响应数据。 `...

    java-httputil.rar

    在"java-httputil.rar"的压缩包中,很可能包含了封装好的工具类或实用方法,简化了上述操作,使得开发者可以更方便地进行HTTP请求。通过学习和理解这些工具,开发者能够更高效地实现与服务器的通信,提高代码的...

    request请求获取参数的实现方法(post和get两种方式)

    本文将详细介绍如何使用`HttpServletRequest`对象在Java Servlet中获取这两种方式下的请求参数。 首先,GET请求通常用于从客户端获取少量数据,这些数据会附加到URL后面。在HTML表单中,当`method`属性设置为`GET`...

    java 调用okHttp3进行代码测试(SpringBoot项目))

    在实际的SpringBoot项目中,这些操作通常会封装在服务层或DAO层的类中,以供业务逻辑调用。你可以创建一个OkHttpService,提供get、post和uploadFile等方法,方便在其他组件中复用。 总结一下,SpringBoot结合...

    java REST接口测试 测试小例子

    3. 发送请求:携带请求参数(对于POST、PUT等有体的请求),将请求发送到服务器。 4. 处理响应:接收服务器返回的HTTP响应,提取响应状态码、响应头和响应体。 5. 错误处理:检查状态码,如果非200系列,通常表示...

    httpclient工具类

    在实际开发中,HttpClient通常与`HttpEntity`、`NameValuePair`等类一起使用,以处理请求的实体内容和参数。此外,注意HttpClient的线程安全问题,如果在多线程环境中使用,需要确保每个线程有自己的HttpClient实例...

    android开发上传文件

    3. **构建请求体**:创建MultipartEntity或RequestBody,添加文件数据,并可能包含其他参数如文件名、类型等。 4. **设置请求头**:设置Content-Type为multipart/form-data,以及其他必要的请求头信息。 5. **发送...

    详解React Native网络请求fetch简单封装

    所以,为了方便使用,我们需要将公共的部分封装起来,然后只需要通过参数的方式对外暴露出诸如请求 Url,请求参数,Header 就可以了。 HTTPUtil 封装 var HTTPUtil = {}; / * GET 请求 */ HTTPUtil.get = ...

    RestTemplate如何通过HTTP Basic Auth认证.docx

    这样每次发送请求时,拦截器会自动处理认证头,避免在每个请求中重复编写相同的代码。 ```java public class BasicAuthInterceptor implements ClientHttpRequestInterceptor { private final String username; ...

    http post 415错误的解决方法

    在Spring Boot中,`@RequestBody`注解用于指示控制器方法参数应从请求体中获取数据,并将其转换为指定的Java对象。 例如,假设有一个名为`User`的Java类,要接收JSON化的`User`对象,控制器方法应该这样写: ```...

    【ASP.NET编程知识】.NET Core 实现定时抓取网站文章并发送到邮箱.docx

    在本文提供的示例代码中,作者使用了一个简单的`HttpUtil`类来封装HTTP请求。你可以根据需要调整请求的超时时间、是否允许自动重定向以及用户代理等参数。 ```csharp public static string GetHtml(string url) { ...

Global site tag (gtag.js) - Google Analytics