c# - 将 PHP CURL 转换为 C#
问题描述
我正在尝试通过 C# 与 web 服务的 api 通信,我有一个 curl 用来与客户端通信的 php 代码,但我希望整个 php curl 代码是纯 C#。
如何将以下 php curl 代码转换为 C# 代码?
<?php
$url = "http://localhost/";
$data = "user=user1&pass=pass1";
$cookie = "00000000000000000000";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
$response = curl_exec($ch);
curl_close($ch);
?>
解决方案
您不需要专门提出 curl 请求。cURL 在 php 中用作发出 http post 请求的简单方法。下面应该在 c# 中完成同样的事情。
var baseAddress = new Uri("http://localhost/");
var cookieContainer = new CookieContainer();
using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer })
using (var client = new HttpClient(handler) { BaseAddress = baseAddress })
{
var content = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("user", "user1"),
new KeyValuePair<string, string>("pass", "pass1"),
});
cookieContainer.Add(baseAddress, new Cookie("CookieName", "cookie_value"));
var result = await client.PostAsync(baseAddress, content);
result.EnsureSuccessStatusCode();
}
推荐阅读
- azure-data-factory - 无法在数据流中使用带有派生列转换的缓存接收器
- django - Django Rest Framework 如何从两个不同的项目请求 [GET, POST, PUT, PATCH]?
- mysql - 关键 AWS RDS_47_replica 事件
- ibm-midrange - As400-如何通过从数据库文件中获取数据并将其作为excel发送来从sqlrpgle程序发送邮件
- javascript - 为什么 Heroku 服务器在几分钟后关闭?
- javascript - 使用 Luxon 以自动格式获取相对日期
- php - 从 while 循环中填充的按钮获取数据
- c# - 查询超过 1190 个字符时 Db2 连接挂起
- gradient - 模型导致添加 Lamda 层后未提供渐变
- java - 数组减法