c# 发送web请求

我们目前涉及到的现有的接收请求方式有三种,

第一种:

页面式的Form表单

第二种:

服务的webservice形式的xml

第三个:

restful风格的post包体json

第一种比较老,博客园的登录就是这样的。找了个例子

这里不做具体讨论了。

第二种的,webservice的,之前的博客里有。

参考

第三种,比较新的json的请求方式

针对这种,就只能用json字符串来提交了,具体代码是

string url = getPRC_Url(serviceName, apiName, null);
string body = "{";
//如果需要POST数据   
if (!(parameters == null || parameters.Count == 0))
{
    StringBuilder buffer = new StringBuilder();
    foreach (string key in parameters.Keys)
    {
        buffer.AppendFormat("\"{0}\":\"{1}\",", key, parameters[key]);
    }
    body += buffer.ToString() + "}";
}
try
{
    HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
    httpWebRequest.ContentType = "application/json";
    httpWebRequest.Method = "POST";
    httpWebRequest.Timeout = 20000;
    byte[] btBodys = Encoding.UTF8.GetBytes(body);
    httpWebRequest.ContentLength = btBodys.Length;
    httpWebRequest.GetRequestStream().Write(btBodys, 0, btBodys.Length);
    HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
    StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream());
    string responseContent = streamReader.ReadToEnd();
    return responseContent;
}
catch (Exception ex)
{
    return null;
}

主要是这个入参需要放在包体里,并且得是"{}"形式的方可。

转载于:https://www.cnblogs.com/Rexcnblog/p/9909799.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# 中,可以使用 `HttpClient` 类来发送 GET 请求,并且可以在请求中带入参数。具体代码如下: ```csharp using System.Net.Http; string url = "http://example.com/api?param1=value1&param2=value2"; // GET 请求的 URL,可以带入参数 HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync(url); // 发送 GET 请求 string responseBody = await response.Content.ReadAsStringAsync(); // 获取响应的内容 ``` 在上面的代码中,`url` 变量中包含了 GET 请求的 URL,其中带入了两个参数:`param1` 和 `param2`。`HttpClient` 类的 `GetAsync` 方法会发送 GET 请求,并且返回一个 `HttpResponseMessage` 对象,其中包含了响应的信息。使用 `ReadAsStringAsync` 方法可以获取响应的内容。 如果 GET 请求中需要带入多个参数,可以直接在 URL 中以 `key=value` 的形式添加参数,并且不同参数之间以 `&` 分隔。需要注意的是,如果参数值中包含特殊字符,需要使用 URL 编码进行转义,可以使用 `HttpUtility.UrlEncode` 方法来进行编码。例如: ```csharp using System.Net.Http; using System.Web; string paramValue = "hello world"; string url = $"http://example.com/api?param1={HttpUtility.UrlEncode(paramValue)}"; HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync(url); string responseBody = await response.Content.ReadAsStringAsync(); ``` 在上面的代码中,使用了 `HttpUtility.UrlEncode` 方法对参数值进行了 URL 编码,以避免参数值中包含特殊字符导致请求失败。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值