首页 > 解决方案 > 将 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);
?>

标签: c#phpvisual-studiocurlconverters

解决方案


您不需要专门提出 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();
}

推荐阅读