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. jdbc、jpa、spring data jpa、hibernate、mybatis之间的关系及区别

    基础概念 jdbc(Java DataBase Connectivity)是java连接数据库操作的原生接口.JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型.作为A ...

  2. INTRODUCE OF REPRESENTATIVE CPG-CONTROLLED ROBOTS

    仿生机器人研究是非常有意思的领域,它不仅从自然界中获取灵感,它也为一些生物的研究提供一个手段和基础,正如下图中所展示的.不论人工智能发展的如何迅速,机械结构始终做为着一个承载的平台,其重要性不可忽略. ...

  3. Win10 禁止自动更新以及禁止Windows 10升级助手(Windows 10 易升)

    微软目前已经重新启用非常烦人的Windows 10升级助手,现在该助手主要帮助用户自动下载以及安装更新. 彻底禁用: 1.在开始菜单右侧的搜索框中输入关键词控制面板,然后打开控制面板后转到程序与功能里 ...

  4. 笔记《JavaScript 权威指南》(第6版) 分条知识点概要2—类型、值、变量

    [类型.值.变量]数字.文本.布尔值.null和undefined.全局对象.包装对象.不可变的原始值和可变的对象引用.类型转换.变量声明.变量作用域 P44~71(PDF版).P32~59(书版) ...

  5. android studio 编辑markdown文件

    作为开发人员,对markdown应该比较熟悉,我们在Android开始中,可以使用studio引入Markdown Navigator插件,进行编辑. 搜索 Markdown Navigator 安装 ...

  6. 移动App测试中的最佳做法

    一说起软件测试,测试员想到肯定是去检查文件,功能,API,性能并确定软件是否安全,以及关于软件特定部分的其他事项.但是对于移动测试,测试员不得不基于用户移动使用模式考虑移动相关的功能. 本文是基于我的 ...

  7. java自动化学习笔记

    1.需要的框架有哪些?分别有什么作用? 2.对比python/node.js框架查看异同

  8. 帝国cms中当调用当前信息不足时,继续取其他数据

    <?php$sql=$empire->query("select * from table1 order by id limit 20"); $num = mysql_ ...

  9. EVE-NG简单入门介绍

    此篇文章简单的介绍下模拟器EVE-NG的使用,具体包括Dynamips设备导入与运行,IOL设备的导入与运行,QEMU设备的导入与运行,客户端软件的安装,物理网络与虚拟网络的结合等. 一.导入镜像 D ...

  10. HTCVIVE定位器更新之后,定位器指示灯不亮,重置基站固件操作指南。

    HTCVIVE定位器更新之后,定位器指示灯不亮,固件修复指南 建议您重置基站固件,操作如下:请您使用手机来拍照运行中基站的“激光发射器”面板,并且数一下是否有17颗LED灯,如果没有17颗,则基本可以 ...