C#通过发送 http 请求调用接口之Post

1.实现车辆审核回调接口(包含车辆基本信息数据)
(1)描述
本接口提供运政车辆基本信息回传服务,调用方式请使用 post 方式提交。
(2)接口调用示例:
待加密格式
type=xxx&user=xxx&pwd=x&vclN=xxx&pltClr=xx&vclClr=xx&area=xx&hsHld=xx...
(3)请求地址格式
http://xxx/vinfos?p=加密后数据

(4)实现: 

        void btnTransferVehicleAudit_Click(object sender, EventArgs e)
        {
            DateTime dt = Convert.ToDateTime("2014-01-09 16:47:24");
            long dtNow = ConvertDateTimeToInt(DateTime.Now);
            long dtSpanTime = ConvertDateTimeToInt(dt); 

            StringBuilder sb = new StringBuilder();
            sb.Append("type=xxx&user=xxx&pwd=0&vclN=xxx&pltClr=2&vclClr=2&area=xx&hsHld=xx&vclCt=xx");
            sb.Append("&vclBsTp=xx&vclTps=xx&vclUsTp=xx&vclLng=xx&vclWdt=xx&vclHgt=xx&boxLng=xx&boxWdt=xx&boxHgt=xx");
            sb.Append("&boxCnt=xx&lftHgt=xx&twoTstStrd=xx&regLicN=xx&drvLicBgDt=xx&drvLicBrd=xx&vin=xx&vclOrg=xx&rdTrans=xx&opStt=xx"); ....
 
            string strEn = Encrypt.Security.EnCode(sb.ToString());//加密
            string url = "http://114.242.194.231:8084/BasisInfoInterface/vinfos";

            Stream outstream = null;
            Stream instream = null;
            StreamReader sr = null;
            HttpWebResponse response = null;
            HttpWebRequest request = null;
            Encoding encoding = System.Text.Encoding.GetEncoding("gb2312");

            byte[] data = encoding.GetBytes("p=" + strEn);
            // 准备请求...
            try
            {
                // 设置参数
                request = WebRequest.Create(url) as HttpWebRequest;
                CookieContainer cookieContainer = new CookieContainer();
                request.CookieContainer = cookieContainer;
                request.AllowAutoRedirect = true;
                request.Method = "POST";
                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = data.Length;
                outstream = request.GetRequestStream();
                outstream.Write(data, 0, data.Length);
                outstream.Close();
                //发送请求并获取相应回应数据
                response = request.GetResponse() as HttpWebResponse;
                //直到request.GetResponse()程序才开始向目标网页发送Post请求
                instream = response.GetResponseStream();
                sr = new StreamReader(instream, encoding);
                //返回结果网页(html)代码
                string content = sr.ReadToEnd(); 
                //处理返回值
                string quReply = Encrypt.Security.DeCode(content); //解密
                string jsona = @quReply;
                JavaScriptSerializer jscvt = new JavaScriptSerializer();
                //将jsona字符串转变成指定类型对象
                TransferResult objQuery = jscvt.Deserialize<TransferResult>(jsona);

                switch (objQuery.code)
                {
                    case "10000": ShowErrorMessage("添加成功2"); break;
                    case "10001": ShowErrorMessage("添加失败"); return;
                    case "20001": ShowErrorMessage("用户名或者密码错误"); return;
                    case "30001": ShowErrorMessage("参数为空"); return;
                    case "90001": ShowErrorMessage("其它异常"); return;
                    case "90002": ShowErrorMessage("系统异常"); return;
                }
            }
            catch (Exception ex)
            {
                string err = ex.Message; 
            }  
        }


C# 中使用 HttpPost 请求调用 WebService,可以按照以下步骤进行操作: 1. 首先,确保你的 C# 项目中引用了 `System.Net.Http` 命名空间。 2. 创建一个 `HttpClient` 对象,用于发送 Http 请求。可以使用以下代码创建一个 `HttpClient` 对象: ```csharp HttpClient client = new HttpClient(); ``` 3. 设置要调用的 WebService 的 URL。假设 WebService 的 URL 是 `http://example.com/your_webservice`,可以使用以下代码设置 URL: ```csharp string url = "http://example.com/your_webservice"; ``` 4. 构建请求参数。根据你要调用的具体 WebService 方法的要求,构建相应的请求参数。可以使用 `FormUrlEncodedContent` 类来构建 URL 编码的请求参数。例如: ```csharp var parameters = new Dictionary<string, string> { { "param1", "value1" }, { "param2", "value2" } }; var content = new FormUrlEncodedContent(parameters); ``` 5. 发送 HttpPost 请求并获取响应。使用 `client.PostAsync` 方法发送 HttpPost 请求,并使用 `await` 关键字等待响应。例如: ```csharp HttpResponseMessage response = await client.PostAsync(url, content); ``` 6. 处理响应。根据你的需求,可以从响应中获取内容、状态码等信息。例如,可以使用以下代码获取响应内容: ```csharp string responseContent = await response.Content.ReadAsStringAsync(); ``` 这样,你就可以在 C# 中使用 HttpPost 请求调用 WebService。根据实际情况,可能还需要处理异常、设置请求头等操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值