JSON与PostAPI

JSON与PostAPI

第一步 定义JSON需要的类

public class User
    {
        public string username { get; set; }
        public string password { get; set; }
    }
public class TestAPI
    {
        public int code { get; set; }
        public string message { get; set; }
        public string datetime { get; set; }
    }

第二步 编写Post发送数据与接收数据的函数

    public static class HttpPost
    {
        /// <summary>
        /// 带超时的Post发送Json,实现超时重发,启用接口日志
        /// </summary>
        /// <param name="url">地址</param>
        /// <param name="data">Json字符串</param>
        /// <param name="encoding">编码类型</param>
        /// <param name="timeout">超时时间</param>
        /// <returns></returns>
        public static string PostJson(string url, string data, Encoding encoding, int timeout)
        {
            try
            {
                //初始化配置
                HttpWebRequest tmpRequest = (HttpWebRequest)WebRequest.Create(url);
                tmpRequest.Method = "POST";
                tmpRequest.KeepAlive = false;
                tmpRequest.Timeout = timeout;
                tmpRequest.ContentType = "application/json";
                byte[] tmpBts = encoding.GetBytes(data);
                tmpRequest.ContentLength = tmpBts.Length;
                //提交数据
                Stream tmpRequestStream = tmpRequest.GetRequestStream();
                tmpRequestStream.Write(tmpBts, 0, tmpBts.Length);
                tmpRequestStream.Flush();
                //接收数据  
                HttpWebResponse tmpResponse = (HttpWebResponse)tmpRequest.GetResponse();
                Stream tmpResponseStream = tmpResponse.GetResponseStream();
                StreamReader tmpStreamReader = new StreamReader(tmpResponseStream, encoding);
                string retString = tmpStreamReader.ReadToEnd();
                //关闭
                tmpStreamReader.Close();
                tmpResponseStream.Close();
                tmpRequestStream.Close();
                //返回数据
                return retString;
            }
            catch (Exception ex)
            {
                return ex.ToString();
            }
        }
    }

第三步 编写主函数

using Newtonsoft.Json;
using System.Text;
using TestJsonAndWebAPI;

User user = new User()
{
    username = "test",
    password = "123456"
};
string tmpUserStr = JsonConvert.SerializeObject(user);
Console.WriteLine(tmpUserStr);

string url = "http://114.132.240.163:9999/ActionApi/TestAPI/Login";
string postDataStr = tmpUserStr;
Encoding encoding = Encoding.UTF8;
int TimeOut = 5000;
string testStr = HttpPost.PostJson(url, postDataStr, encoding, TimeOut);
TestAPI test = JsonConvert.DeserializeObject<TestAPI>(testStr);
testStr = JsonConvert.SerializeObject(test);
Console.WriteLine(testStr);

完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值