c#httpwebrequest
时间: 2025-02-08 16:10:08 浏览: 37
### C# 中 `HttpWebRequest` 的使用方法
#### 创建并配置 HTTP 请求对象
为了创建一个 HTTP 请求,通常会先通过 `WebRequest.Create()` 方法来获取对应的 `HttpWebRequest` 对象实例。此过程允许指定目标 URL 地址。
```csharp
string url = "http://example.com/api";
var request = (HttpWebRequest)WebRequest.Create(url);
```
设置请求的方法(GET, POST 等),以及必要的头部信息和其他属性[^1]:
```csharp
request.Method = "POST"; // 或者 GET, PUT, DELETE 等
request.ContentType = "application/json; charset=utf-8";
// 添加自定义头信息
request.Headers.Add("Authorization", $"Bearer {token}");
```
对于发送数据的情况,需写入请求流中:
```csharp
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
string json = "{\"key\":\"value\"}";
streamWriter.Write(json);
}
```
#### 获取响应并处理返回的数据
一旦设置了所有的选项之后就可以调用 GetResponse() 来发起实际的网络通信操作,并接收服务器端传回的信息。
```csharp
try
{
using(HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
var statusCode = ((int)response.StatusCode).ToString();
using(StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
string content = reader.ReadToEnd();
Console.WriteLine($"Status Code: {statusCode}, Content: {content}");
}
}
}
catch(WebException ex)
{
if(ex.Response != null)
{
using(var errorResponse = (HttpWebResponse)ex.Response)
{
Console.WriteLine($"Error status code:{(int)errorResponse.StatusCode}");
using(var reader = new StreamReader(errorResponse.GetResponseStream()))
{
String errorMessage = reader.ReadToEnd();
Console.WriteLine($"Error message from server:\n{errorMessage}");
}
}
}else
{
Console.WriteLine($"Web exception occurred but no response was received.");
}
}
finally
{
// 清理资源...
}
```
上述代码展示了如何构建基本的 HTTP 客户端逻辑,在遇到异常情况时也能适当捕获错误并打印出来以便调试[^2]。
阅读全文
相关推荐


















