我使用python的falsk框架进行服务的模拟接收
文章链接:https://blog.csdn.net/qq_42102546/article/details/130425504
你可以复制接收部分的内容运行,进行Post发送验证
git与post请求(带参数的post请求)
代码组成部分:
- 建立一个类,此类json解析或者发送的必要的东西
- git与post请求
- json的打包与发送
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// json 使用的库 需要在引用内添加:System.Web.Extensions
using System.Web.Script.Serialization;
using System.IO;
// Http 使用的库
using System.Net;
namespace ConsoleApplication3
{
// json 需要被序列化所必须创建的类
// 也就是你需要发送或接受的内容固定格式
class person
{
// 名字
public string name { get; set; }
// 年龄
public int age { get; set; }
// 用来方便打印查看内容的
public override string ToString()
{
return string.Format("Name:{0}\nAge:{1}", name, age);
}
}
class HttpGetPost
{
//#region Get请求
public static string Get(string Url)
{
//System.GC.Collect();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Proxy = null;
request.KeepAlive = false;
request.Method = "GET";
request.ContentType = "application/json; charset=UTF-8";
request.AutomaticDecompression = DecompressionMethods.GZip;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
if (response != null)
{
response.Close();
}
if (request != null)
{
request.Abort();
}
return retString;
}
//#endregion
// pose请求
public static string Post(string Url, string Data, string Referer)
{
//创建一个HTTP请求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
//Post请求方式
request.Method = "POST";
request.Referer = Referer;
byte[] bytes = Encoding.UTF8.GetBytes(Data);
//内容类型
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = bytes.Length;
Stream myResponseStream = request.GetRequestStream();
myResponseStream.Write(bytes, 0, bytes.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
if (response != null)
{
response.Close();
}
if (request != null)
{
request.Abort();
}
return retString;
}
}
// 此类作用: 序列化 与 反序列化 json格式的数据,进行打包发送和接收解析
class JsonSendReceive
{
// 创建类
JavaScriptSerializer ser = new JavaScriptSerializer();
// json序列化 用于发送
// 将函数的形参类型修改为你需要的类型
public string json_send(person p1)
{
// 序列化 json格式
string outputJSON = ser.Serialize(p1);
使用IO进行写入 json格式 的文件 保存本地
//File.WriteAllText("Output.json", outputJSON);
return outputJSON;
}
// json序列化 用于接收
// 输入git到的 json字符串内容 进行反序列化解析为类
// 将函数的返回类型修改为你需要的类型
public person json_receive(string p1)
{
读取本地 json 文件
//String p1 = File.ReadAllText("JSON.json");
// 实例化 将封装类进行解析 反序列化
person p = ser.Deserialize<person>(p1);
return p;
}
}
class Program
{
static void Main(string[] args)
{
post发送
实例化 一个封装类
//person p1 = new person() { name = "Ben", age = 67 };
实例化 json 处理的类
//JsonSendReceive json_p1 = new JsonSendReceive();
json 格式 序列化
//string data = json_p1.json_send(p1);
// post 必要参数
string url1 = "http://127.0.0.1:8888";
string str_head = "";
不带参数: 直接字符串就可以
//string data1 = "123";
// 带参数需要自己拼接字符串
// 例如: 参数1:s1 参数2:s2 中间用&间隔 使用 =
string data1 = "s1=" + "s1的内容" + "&s2=" + "s2的内容";
// 发送
string data_ = HttpGetPost.Post(url1, data1, str_head);
// git 必要参数
string url = "http://www.kuaidi100.com/query?type=shunfeng&postid=367847964498";
// 发送
string data = HttpGetPost.Get(url);
// git接收
实例化 json 处理的类
//JsonSendReceive json_p1 = new JsonSendReceive();
json 格式 反序列化
//person data_ = json_p1.json_receive(data);
Console.WriteLine(data);
Console.ReadKey();
}
}
}