C#通过http调用JavaApi

C#发送HTTP请求,带参数

c#发送请求以json字符串格式传参,对象传参两种调用方法

C#工程

在这里插入图片描述

 private void button1_Click(object sender, EventArgs e)
        {
            try
            {
          
                string url = @"http://localhost:8080/user";
                System.Net.HttpWebRequest req = null;
                System.Net.HttpWebResponse res = null;
                req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);  //创建HTTP 请求
                req.Method = "POST";       
                 //json字符串
                req.ContentType = "application/json;charset=UTF-8";  //发送参数格式
                string jsonParam = "{ \"name\":\"张憨憨\",\"sex\":\"女\",\"age\":\"12\"}";
                byte[] byteData = Encoding.UTF8.GetBytes(jsonParam);
                int length = byteData.Length;
                req.ContentLength = length;
                Stream writer = req.GetRequestStream();
                writer.Write(byteData, 0, length);
                writer.Close();
                res = (System.Net.HttpWebResponse)req.GetResponse();   //获取请求返回的响应
                System.IO.StreamReader read = new System.IO.StreamReader(res.GetResponseStream()); //读取来自API 接口的响应中的内容,也就是它的体
                textBox1.Text = read.ReadToEnd().ToString();  //输出StreamReader 中所有的流
            }
            catch (System.Net.WebException ex)
            {
                Console.WriteLine("This program is expected to throw WebException on successful run." +
                        "\n\nException Message :" + ex.Message);
                if (ex.Status == WebExceptionStatus.ProtocolError)
                {
                    Console.WriteLine("Status Code : {0}", ((HttpWebResponse)ex.Response).StatusCode);
                    Console.WriteLine("Status Description : {0}", ((HttpWebResponse)ex.Response).StatusDescription);
                }
                Console.WriteLine(ex.Message);
                throw;
            }

        }
        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                string url = @"http://localhost:8080/user";
                RequestMessage requestMessage = new RequestMessage();
                requestMessage.name = "王大锤";
                requestMessage.sex = "男";
                requestMessage.age = "12";
                //创建一个http请求
                System.Net.HttpWebRequest req = null;
                System.Net.HttpWebResponse res = null;
                req = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(url);
                req.Method = "POST";
                //req.RequestFormat = 
                req.ContentType = "application/json;charet = UTF-8";
                byte[] bytData = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(requestMessage));
                int length = bytData.Length;
                req.ContentLength = length;
                Stream writer = req.GetRequestStream();
                writer.Write(bytData, 0, length);
                writer.Close();
                res = (System.Net.HttpWebResponse)req.GetResponse();   //获取请求返回的响应
                System.IO.StreamReader read = new System.IO.StreamReader(res.GetResponseStream()); //读取来自API 接口的响应中的内容,也就是它的体
                textBox1.Text = read.ReadToEnd().ToString();  //输出StreamReader 中所有的流
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }
    
    public class RequestMessage
    {
        [JsonProperty("name")]
        public string name { get; set; }

        [JsonProperty("sex")]
        public string sex { get; set; }


        [JsonProperty("age")]
        public string age { get; set; }


    }

javaApi

@RestController
@RequestMapping("/user")
public class ReceiveCController {

    @PostMapping
    public String receive(@RequestBody User user){
        try {
            System.out.println(user);

        } catch (Exception e) {
            e.printStackTrace();
        }
        return "我是" + user.getName() +":" +user.getSex();
    }
}

以上代码仅供参考

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值