golang:模拟http post请求

  1,发送http post请求(客户端)

func httppost()  {
	data :=`{"type":"10","msg":"hello."}`
	request, _ := http.NewRequest("POST", "http://0.0.0.0:8090/msg", strings.NewReader(data))
	//post数据并接收http响应
	resp,err :=http.DefaultClient.Do(request)
	if err!=nil{
		fmt.Printf("post data error:%v\n",err)
	}else {
		fmt.Println("post a data successful.")
		respBody,_ :=ioutil.ReadAll(resp.Body)
		fmt.Printf("response data:%v\n",string(respBody))
	}
}

  2,接收方法(服务端)

package main

import (
	"net/http"
	"io/ioutil"
	"fmt"
)

func main()  {
	//设置路由和接收HTTP请求的方法
	mux :=http.NewServeMux()
	mux.HandleFunc("/msg",recvHandle)
	//设置http服务
	server :=&http.Server{
		Addr:    "0.0.0.0:8090",
		Handler: mux,
	}
	//启动监听
	server.ListenAndServe()
}
func recvHandle(w http.ResponseWriter, r *http.Request)  {
	body,_ :=ioutil.ReadAll(r.Body)
	fmt.Println(string(body))
	fmt.Fprintf(w,"3q your msg.")
}

  3,执行结果

原文地址:https://www.cnblogs.com/ecake/p/8831099.html

时间: 2024-10-08 05:46:20

golang:模拟http post请求的相关文章

用java模拟发送post请求

package com.bytestream.practice.demo;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;

telnet客户端模拟浏览器发送请求

telnet 客户端 telnet客户端能够发出请求去连接服务器(模拟浏览器) 使用telnet之前,需要开启telnet客户端 1.进入控制面板 2.进入程序和功能,选择打开或关闭windows功能 3.进入后找到telnet客户端,点击确定 模拟浏览器发出http协议请求 1.打开telnet客户端:进入cmd 2.连接apache服务器 语法:telnet localhost port(telnet localhost 80) 3.数据回显 3.1同时按住:ctrl+右中括号 3.2按下回

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

WEB开发中信息基本全是在POST与GET请求与响应中进行,GET因其基于URL的直观,易被我们了解,可POST请求因其信息的隐蔽,在安全的同时,也给开发者们模拟发送带来了麻烦.接下来的几篇博文中,我将结合自己的笔记和理解,详细解释PHP进行POST请求的几种方法,如有错误,烦请指正. HTTP协议信息是WEB开发中的一项重要内容,了解它可以帮助我们更深刻地理解BS交互,也有利于我们从更底层理解WEB开发.HTTP协议是一种简单灵活方便的通讯协议,并且要记住,它是一种无状态的协议,即它是一种无记

PHP模拟发送POST请求之五curl基本使用和多线程优化

今天来介绍PHP模拟发送POST请求的重型武器——cURL函数库的使用和其多线程的优化方法. 说起cURL函数,可谓是老生常谈,但网上许多资料都在关键部分语焉不详,列出一大堆手册上的东西,搞得我入门时也万分痛苦,我翻了些资料,结合自己的笔记,总结了这篇博文,希望能给初次接触cURL的开发者提供一些帮助. cURL的基本使用步骤 首先来介绍cURL: cURL按照HTTP头信息来模拟浏览器传输数据,它支持FTP, FTPS, HTTP, HTTPS, DICT, FILE等协议,拥有HTTPS认证

httpClient模拟浏览器发请求

一.介绍 httpClient是Apache公司的一个子项目, 用来提高高效的.最新的.功能丰富的支持http协议的客户端编程工具包.完成可以模拟浏览器发起请求行为. 二.简单使用例子 : 模拟浏览器发起访问谷歌首页请求 1.pom.xml 配置 <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <ve

jmeter测试TCP服务器/模拟发送TCP请求

jmeter测试TCP服务器,使用TCP采样器模拟发送TCP请求. TCP采样器:打开一个到指定服务器的TCP / IP连接,然后发送指定文本并等待响应. jmeter模拟发送TCP请求的方法: 1.新建线程组,然后在线程组中新建TCP采样器 TCP采样器中填写服务器地址.端口和"要发送的文本",其它选项根据需要选填: re_use connection表示重复发送连接请求 close connection 关闭连接 如果TCP请求需要用户名/密码,可以在登录配置中填写 2.新建&qu

CountDownLatch和CyclicBarrier模拟同时并发请求

有时候要测试一下某个功能的并发能力,又不要想借助于其他测试工具,索性就自己写简单的demo模拟一个并发请求就最方便了.如果熟悉jemter的测试某接口的并发能力其实更专业,此处只是自己折腾着玩. CountDownLatch和CyclicBarrier是jdk concurrent包下非常有用的两个并发工具类,它们提供了一种控制并发流程的手段.其实查看源码它们都是在内部维护了一个计数器控制流程的 CountDownLatch:一个或者多个线程,等待其他多个线程完成某件事情之后才能执行:Cycli

php使用curl模拟多线程发送请求

每个PHP文件的执行是单线程的,但是php本身也可以用一些别的技术实现多线程并发比如用php-fpm进程,这里用curl模拟多线程发送请求.php的curl多线程是通过不断调用curl_multi_exec来获取内容,这里举一个demo来模拟一次curl多线程并发操作. 1 /** 2 * Subject:php模拟多线程请求curl返回结果 3 * User: luokakale 4 * Date: 2018/11/3 5 * Time: 11:14 6 */ 7 8 //设置缓冲为0(也可以

fiddler模拟发送post请求

模拟发送post请求:把原接口请求的textview内容复制,粘贴到body中去 需要以表单形式发送数据时,要添加请求头content-type 原文地址:https://www.cnblogs.com/come202011/p/12262452.html

springboot shiro 前后端分离,解决跨域、过虑options请求、shiro管理session问题、模拟跨域请求

一.解决跨域.过虑options请求问题 1.创建过虑类 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; im