C# Post请求

public static string Post(object param ,string url)
        {
            #region
            try
            {
                
                string resultString = "";
                ApiRequest apiRequest = new ApiRequest();
                apiRequest.httpMethod = "POST";
                apiRequest.body = param;
                apiRequest.apiPath = url; 
                DateTime currentTime = DateTime.UtcNow;
                TimeSpan timeSpan = currentTime - new DateTime(1970, 1, 1, 0, 0, 0, 0);
                long timestamp = Convert.ToInt64(timeSpan.TotalMilliseconds);

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = apiRequest.httpMethod;
                request.Timeout = DEFAULT_TIMEOUT;
                request.Headers.Add(ApiConstants.HEADER_X_CA_KEY, APP_KEY);
                request.Headers.Add(ApiConstants.HEADER_X_CA_TIMESTAMP, timestamp.ToString());
                request.Headers.Add(ApiConstants.HEADER_X_CA_NONCE, System.Guid.NewGuid().ToString());
                request.Accept = ApiConstants.CONTENT_TYPE_JSON;
                request.Date = currentTime;

                Stream requestStream = request.GetRequestStream();
                if (!string.IsNullOrEmpty(apiRequest.GetBodyContent()))
                {
                    byte[] bytes = Encoding.UTF8.GetBytes(apiRequest.GetBodyContent());
                    request.ContentType = ApiConstants.CONTENT_TYPE_JSON;
                    //request.ContentLength = bytes.Length;

                    string stringToSign = ApiUtils.buildStringToSign(apiRequest, request);
                    string signature = ApiUtils.getSignature(stringToSign, APP_SECRET);
                    request.Headers.Add(ApiConstants.HEADER_X_CA_SIGNATURE, signature);

                    requestStream.Write(bytes, 0, bytes.Length);
                    requestStream.Close();
                }
                HttpWebResponse resp = (HttpWebResponse)request.GetResponse();
                //获取响应内容
                using (Stream stream = resp.GetResponseStream())
                using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
                {
                    resultString = reader.ReadToEnd();
                }
                
                return resultString;
            }
            catch (Exception ex)
            {
                
                return null;
            }
            #endregion
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值