使用PHP并发送POST请求时,我这样做:
$ch = curl_init(POSTURL);
curl_setopt($ch, CURLOPT_POST ,1);
curl_setopt($ch, CURLOPT_POSTFIELDS , 'whatever');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1);
$Rec_Data = curl_exec($ch);
现在我想在C#中使用CURL。我找到了“libcurl”,但我不知道该怎么做。我在互联网上找到了一些代码片段,但它们并没有真正帮助。
那我怎么能把那个PHP代码翻译成C#?
非常感谢。
答案 0 :(得分:1)
以下是如何使用LibCurlNet的示例
using System;
using SeasideResearch.LibCurlNet;
namespace Sample
{
internal class Program
{
private static void Main(string[] args)
{
Curl.GlobalInit((int)CURLinitFlag.CURL_GLOBAL_ALL);
Easy easy = new Easy();
Easy.WriteFunction wf = MyWriteFunction;
easy.SetOpt(CURLoption.CURLOPT_URL, "http://google.com/index.html");
easy.SetOpt(CURLoption.CURLOPT_WRITEFUNCTION, wf);
easy.Perform();
easy.Cleanup();
Console.WriteLine("Press any key...");
Console.ReadKey();
}
private static int MyWriteFunction(byte[] buf, int size, int nmemb, Object extraData)
{
foreach (byte b in buf)
Console.Write((char)b);
return buf.Length;
}
}
}
有关更多示例,请搜索libcurl的stackoverflow。在[libcurl]标记下有很多代码片段在这里漫游。希望这会有所帮助。
答案 1 :(得分:1)
这是来自CurlSharp
的快速示例using System;
using CurlSharp;
internal class EasyGet
{
public static void Main(String[] args)
{
Curl.GlobalInit(CurlInitFlag.All);
try
{
using (var easy = new CurlEasy())
{
easy.Url = "http://www.google.com/";
easy.WriteFunction = OnWriteData;
easy.Perform();
}
}
finally
{
Curl.GlobalCleanup();
}
}
public static Int32 OnWriteData(Byte[] buf, Int32 size, Int32 nmemb, Object extraData)
{
Console.Write(Encoding.UTF8.GetString(buf));
return size*nmemb;
}
}
CurlSharp适用于Win32和Win64,以及Linux和OSX(Mono)。
免责声明:我是上述图书馆的作者。
答案 2 :(得分:0)
为什么不能使用WebClient,WebRequest或HttpWebRequest?它们足以支持HTTP调用(包括所有其他动词)。