package post;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.URL;

import java.net.URLConnection;

public class DoTest {

   /**

    * 请求连接固定参数

    * @param s 传参地址

    */

   public static URLConnection getConnection(String s) throws IOException { 

        URL url = new URL(s); 

        URLConnection conn = url.openConnection(); 

        conn.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式 

        conn.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式 

        return conn; 

    }

   //请求地址带接口地址,请求参数是json字符串,举例如下:

   //请求地址:http://127.0.0.1:8080/test/testone

   //请求参数:{

   //              "testone": "testname1",

   //              "testtwo": "testname2"

   //              }

   /**

    * post请求

    * @param s 传参地址和接口 

    * @param param 请求参数

    * @return 返回响应结果

    * @throws IOException 抛异常

    */

   public static String reqPost(String s, String param) throws IOException {

        System.out.println("请求地址:"+s); 

        System.out.println("请求参数:"+param);

        String res = ""; 

        URLConnection conn = getConnection(s); // POST要求URL中不包含请求参数 

        conn.setDoOutput(true); // 必须设置这两个请求属性为true,就表示默认使用POST发送

        conn.setDoInput(true); 

        // 请求参数必须使用conn获取的OutputStream输出到请求体参数 

        PrintWriter out = new PrintWriter(conn.getOutputStream()); // 用PrintWriter进行包装 

        out.println(param); 

        out.flush(); // 立即充刷至请求体)PrintWriter默认先写在内存缓存中 

        try// 发送正常的请求(获取资源)

        {  

            BufferedReader in = new BufferedReader( 

              new InputStreamReader(conn.getInputStream(), "utf-8")); 

            String line; 

            while ((line = in.readLine()) != null) { 

                res += line + "\n"; 

            } 

        } catch (Exception e) { 

            System.out.println("Get Error Occured!"); 

            e.printStackTrace(); 

        } 

        return res; 

    }

}

 

http协议发送post请求的更多相关文章

  1. php模拟HTTP协议发送post请求方法

    今天用到php模拟http发送post请求记录 代码如下: <?php $url = 'xxxx.com'; $data = 'a=one&b=two'; $data = urlenco ...

  2. Android面向HTTP协议发送post请求

    /** * 採用post请求的方式 * * @param username * @param password * @return null表示求得的路径有问题,text返回请求得到的数据 */ pu ...

  3. Android面向HTTP协议发送get请求

    /** * 採用get请求的方式 * * @param username * @param password * @return null表示求得的路径有问题,text返回请求得到的数据 */ pub ...

  4. java通过java.net.URL发送http请求调用接口

    一般在*.html,*.jsp页面中我们通过使用ajax调用接口,这个是我们通常用的.对于这些接口,大都是本公司写的接口供自己调用,所以直接用ajax就可以.但是,如果是多家公司共同开发一个东西,一个 ...

  5. PHP模拟发送POST请求之一、HTTP协议头部解析

    WEB开发中信息基本全是在POST与GET请求与响应中进行,GET因其基于URL的直观,易被我们了解,可POST请求因其信息的隐蔽,在安全的同时,也给开发者们模拟发送带来了麻烦.接下来的几篇博文中,我 ...

  6. C#利用 HttpWebRequest 类发送post请求,出现“套接字(协议/网络地址/端口)只允许使用一次”问题

    声明:问题虽然已经被解决,但是并没有明白具体原理,欢迎大佬补充. 最近网站出现一个问题,在C#里面使用  HttpWebRequest 类去发送post请求,偶尔 会出现 “套接字(协议/网络地址/端 ...

  7. 【传输协议】发送https请求,由于客户端jdk版本过高,服务端版本低。导致异常:javax.net.ssl.SSLHandshakeException: Server chose SSLv3, but that protocol version is not enabled or not supported by the client.

    本地环境jdk为1.8,服务器使用jdk版本未知.但发送https请求,抛出如下异常,解决方案. 一:发送异常内容如下 javax.net.ssl.SSLHandshakeException: Ser ...

  8. Java发送Http请求并获取状态码

    通过Java发送url请求,查看该url是否有效,这时我们可以通过获取状态码来判断. try { URL u = new URL("http://10.1.2.8:8080/fqz/page ...

  9. 【转载】JMeter学习(三十六)发送HTTPS请求

    Jmeter一般来说是压力测试的利器,最近想尝试jmeter和BeanShell进行接口测试.由于在云阅读接口测试的过程中需要进行登录操作,而登录请求是HTTPS协议.这就需要对jmeter进行设置. ...

随机推荐

  1. css实现垂直水平居中的方法(个数不限)?

    方法一:使用绝对定位 大家都知道margin:0 auto;能够实现水平居中,但却不知道margin:0 auto;也是可以实现垂直居中的: 给居中元素添加如下样式: .Absolute-Center ...

  2. go学习笔记-简述

    1.程序结构 Go程序结构和C系程序(C/C++/JAVA等)一致,基本语句被组织成函数用于隔离和复用,函数组成源文件和包.Go程序存储在一个或多个.go文件中,每个文件都已pakage开头,表面当前 ...

  3. 【Redfin SDE intern】跪经

    萌新的面试第一弹 Redfin是我求职生涯中的第一家,第一个电面,第一个onsite.除了结果不好,其他过程都很好... 春节当天风风火火去西雅图面试,之前分配的五个面试官其中有两个中国人,然而全部被 ...

  4. 图片转成Base64

    var img = "imgurl";//imgurl 就是你的图片路径 function getBase64Image(img) { var canvas = document. ...

  5. vue.js 自带阻止默认事件 阻止冒泡

    <!-- 阻止单击事件冒泡 --> <a v-on:click.stop="doThis"></a>   <!-- 提交事件不再重载页面  ...

  6. css3 翻牌动画

    最近做了一个特效,css是从网上找的,地址是这个: CSS3 animate flip下的纸牌翻转效果实例页面 把其中核心的css代码扒出来如下: /* The properties in this ...

  7. 跟随我在oracle学习php(16)

    数据库的增删改查 增:create  database  [if  not  exists ] 数据库名  [charset  字符集]  [collate  字符排序规则]: 说明: 1,if  n ...

  8. transform,transtion属性

    transform:变化类型,transtion变化方式

  9. bzoj2369

    题解: 显然把每一个环求出来 然后做一个lcm即可 代码: #include<cstdio> using namespace std; ],f[],n; int gcd(int x,int ...

  10. C# 应用程序单例(禁止多开) 获取.net版本号 以及 管理员权限

    Mutex不仅提供跨线程的服务,还提供跨进程的服务.当在构造函数中为Mutex指定名称时,则会创建一个命名了的Mutex.其他线程创建Mutex时,如果指定的名称相同,则返回同一个互斥体,不论该线程位 ...