关闭

java中怎样用post、get、put请求

标签: javaPOSTGETPUT
5570人阅读 评论(0) 收藏 举报
分类:

java中我们有时需要调用第三方的接口,但是第三方的接口都是http形式的,这是需要用post,get,put请求类型请求

1、GET方式请求

public static String httpGet(String getUrl,Map<String, String> getHeaders) throws IOException {
    URL getURL = new URL(getUrl);
    HttpURLConnection connection = (HttpURLConnection) getURL.openConnection();

    connection.setRequestProperty("accept", "*/*");
    connection.setRequestProperty("connection", "Keep-Alive");
    connection.setRequestProperty("user-agent",
            "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");//在get请求中这是能在各个浏览器兼容json
    if(getHeaders != null) {
        for(String pKey : getHeaders.keySet()) {
            connection.setRequestProperty(pKey, getHeaders.get(pKey));
        }
    }
    connection.connect();
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
    StringBuilder sbStr = new StringBuilder();
    String line;
    while ((line = bufferedReader.readLine()) != null) {
        sbStr.append(line);
    }
    bufferedReader.close();
    connection.disconnect();
    return new String(sbStr.toString().getBytes(),"utf-8");
}

2、POST方式请求

    public static String httpPost(String postUrl,Map<String, String> postHeaders, String postEntity) throws IOException {
        URL postURL = new URL(postUrl);
        HttpURLConnection httpURLConnection = (HttpURLConnection) postURL.openConnection();
        httpURLConnection.setDoOutput(true);                 
        httpURLConnection.setDoInput(true);
        httpURLConnection.setRequestMethod("POST");
        httpURLConnection.setUseCaches(false);
        httpURLConnection.setInstanceFollowRedirects(true);
        //application/json x-www-form-urlencoded
        //httpURLConnection.setRequestProperty("Content-Type",  "application/x-www-form-urlencoded");
        httpURLConnection.setRequestProperty("Content-Type",  "application/json;charset=utf-8");
        StringBuilder sbStr = new StringBuilder();
        if(postHeaders != null) {
            for(String pKey : postHeaders.keySet()) {
                httpURLConnection.setRequestProperty(pKey, postHeaders.get(pKey));
            }
        }
        if(postEntity != null) {
             JSONObject obj = new JSONObject();
             obj.put("plate",postEntity);
            PrintWriter out = new PrintWriter(new OutputStreamWriter(httpURLConnection.getOutputStream(),"utf-8"));   
            out.println(obj);  
            out.close();  
            //httpURLConnection.getInputStream()
            BufferedReader in = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream(),"utf-8"));  //解决返回值汉字乱码的问题
              
            String inputLine;
            while ((inputLine = in.readLine()) != null) {  
                sbStr.append(inputLine);  
            }  
            in.close();  
        }
        httpURLConnection.disconnect();
        System.out.println("fsdfdf:"+sbStr.toString());
        return new String(sbStr.toString().getBytes(),"utf-8");
    }    

3、PUT请求

    public static String HttpPut(String postUrl,Map<String, String> postHeaders,String postEntity) throws Exception {  
        URL postURL = new URL(postUrl);
        HttpURLConnection httpURLConnection = (HttpURLConnection) postURL.openConnection();
        httpURLConnection.setDoOutput(true);                 
        httpURLConnection.setDoInput(true);
        httpURLConnection.setRequestMethod("PUT");
        httpURLConnection.setUseCaches(false);
        httpURLConnection.setInstanceFollowRedirects(true);
        //application/json x-www-form-urlencoded
        //httpURLConnection.setRequestProperty("Content-Type",  "application/x-www-form-urlencoded");//表单上传的模式
        httpURLConnection.setRequestProperty("Content-Type",  "application/json;charset=utf-8");//json格式上传的模式
        StringBuilder sbStr = new StringBuilder();
        if(postHeaders != null) {
            for(String pKey : postHeaders.keySet()) {
                httpURLConnection.setRequestProperty(pKey, postHeaders.get(pKey));
            }
        }
        if(postEntity != null) {
             JSONObject obj = new JSONObject();
             obj.put("plate","京NB1314");
            PrintWriter out = new PrintWriter(new OutputStreamWriter(httpURLConnection.getOutputStream(),"utf-8"));   
            out.println(obj);  
            out.close();  
            BufferedReader in = new BufferedReader(new InputStreamReader(httpURLConnection  
                    .getInputStream()));  
              
            String inputLine;
            while ((inputLine = in.readLine()) != null) {  
                sbStr.append(inputLine);  
            }  
            in.close();  
        }
        httpURLConnection.disconnect();
        return new String(sbStr.toString().getBytes(),"utf-8");
    } 

1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Java发送http的get、post、put请求

1. HTTP GET请求/** * 向指定URL发送GET方法的请求 * * @param url 发送请求的URL * ...
  • qiqishuang
  • qiqishuang
  • 2016-06-12 10:31
  • 5999

Android 网络请求方式之HttpClient,GET,POST,PUT请求使用方法

HttpClient是Apache开源组织提供的HTTP网络访问接口,HttpClient封装了访问http的请求头,参数,内容体,响应等等,有很多API,可以很方便的处理session,cookie...
  • zcf520android
  • zcf520android
  • 2016-04-27 16:10
  • 3445

java http 发送 put delete post get请求

  • 2015-05-27 14:31
  • 4KB
  • 下载

Java发送http的get、post、put请求

1. HTTP GET请求/** * 向指定URL发送GET方法的请求 * * @param url 发送请求的URL * ...
  • qiqishuang
  • qiqishuang
  • 2016-06-12 10:31
  • 5999

c#写的接口测试工具,支持post get put del请求

  • 2018-01-05 17:35
  • 62KB
  • 下载

post_get_put等请求方法的区别

  • 2013-06-13 13:33
  • 19KB
  • 下载

jax-rs(Java API for RESTful Web Services)实践教程 之二 —— get/post/put/delete/head

转载请注明出处,谢谢 http://blog.csdn.net/exsuns 新建一个web工程: 新建类com.Hello.java ,内容如下 view plainc...
  • h1987983372
  • h1987983372
  • 2011-11-26 21:23
  • 1922

REST四种请求(get,delete,put,post) 收集整理 之一

转自:http://blog.csdn.net/cloudcraft/article/details/10087033 资源是REST中最关键的抽象概念,它们是能够被远程访问的应用程序对象。一个...
  • shi_weihappy
  • shi_weihappy
  • 2014-12-15 15:41
  • 2873

restlet2.1 学习笔记(二) 分别处理Get Post Put请求

servlet只支持GET与POST两种请求。 但是restlet除了支持GET与POST请求外还支持Delete  Put  OPTIONS 等多种请求 。 第一步,编写资源类 (可以将资源类想...
  • is_zhoufeng
  • is_zhoufeng
  • 2013-08-02 17:49
  • 9691

浅析HTTP协议六种请求方法(get,head,put,delete,post)

浅析HTTP协议六种请求方法(get,head,put,delete,post)标准Http协议支持六种请求方法,即:1、GET 2、POST 3、PUT 4、Delete 5、HEAD 6、Opti...
  • yus501501
  • yus501501
  • 2017-11-09 15:41
  • 202
    个人资料
    • 访问:5503次
    • 积分:66
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档