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. mybatis-generator自动生成Mapper.dao.entity

    在pom.xml中添加依赖 <plugin> <groupId>org.mybatis.generator</groupId> <artifactId> ...

  2. cowboy源码分析(一)

    前段时间导读了ranch的源码,具体见ranch 源码分析(一), 现在整理了下ranch框架下经典应用cowboy. 源码地方:https://github.com/ninenines/cowboy ...

  3. 《BUG创造队》第一次作业:团队亮相

    项目 内容 这个作业属于哪个课程 2016级软件工程 这个作业的要求在哪里 第五次实验 团队名称 BUG创造队 作业学习目标 通过本次项目了解并熟悉团队开发的过程 关于我们 -我们的队名:BUG创造队 ...

  4. 51. N-Queens N皇后

    网址:https://leetcode.com/problems/n-queens/ 类似见:https://www.cnblogs.com/tornado549/p/10701124.html

  5. 2015-11-03 ado.net3

    DataReader和DateSet区别: 1. DataReader是一行一行的读,且只能向前读.DateSet是一次性读取出来放到内存中,所以,DataReader读取速度更快,占用内存更低. 2 ...

  6. 【lintcode】 二分法总结 I

     二分法:通过O(1)的时间,把规模为n的问题变为n/2.T(n) = T(n/2) + O(1) = O(logn). 基本操作:把长度为n的数组,分成前区间和后区间.设置start和end下标.i ...

  7. 运用python绘制小猪佩奇

    用python绘制小猪佩奇 1.打开idle 2.点击File-New Files 3.输入以下代码 1. from turtle import * 2. 3. def nose(x,y):#鼻子 4 ...

  8. 常见排序算法JAVA实现

    1.冒泡排序,时间复杂度:最好:T(n) = O(n) ,情况:T(n) = O(n2) ,平均:T(n) = O(n2) public int[] bubbleSort(int[] nums) { ...

  9. 在Postman中使用不受信任的SSL证书

    阅读目录 第一种方案——临时添加到受信任的证书颁发机构: 第二种方案——永久添加到受信任的证书颁发机构: add by zhj: 在http://www.cnblogs.com/ajianbeyour ...

  10. php遍历数组7种方式(严格说是五种)

    数组: $arr = array(1,2,3,4,5); 第一种:foreach (最常见的) foreach ($arr as $v){ echo $v;} 第二种:for for($i=0;$i& ...