c# - 将 CURL 转换为 C#

标签 c# http post curl

我花了很长时间尝试各种不同的方法将此 curl 转换为 C#。有人可以帮忙吗? 我正在尝试做一个 http post 并不断收到错误 500。 这是我要转换的内容:

curl --user username:password -X POST -d "browser=Win7x64-C1|Chrome32|1024x768&url=http://www.google.com" http://crossbrowsertesting.com/api/v3/livetests/

这是我目前所拥有的:

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(baseurl);
request.Method = "POST";
request.Accept = "application/json";
request.Credentials = new NetworkCredential(username, password);

var response = request.GetResponse();
string text;

using (var sr = new StreamReader(response.GetResponseStream()))
{
    text = sr.ReadToEnd();
    values.Add(text);
}

这个方法也试过了,还是不行:

List<string> data = new List<string>();
        data.Add("browser=Win7x64-C1|Chrome20|1024x768");
        data.Add("url=URL");
        data.Add("format=json");
        data.Add("callback=doit");
        var request = WebRequest.Create("CrossBrowserTestingURL");
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.Credentials = new NetworkCredential(username, password);
        using (var writer = new StreamWriter(request.GetRequestStream()))
        {
            writer.Write("data=" + data);
        }

        var response = request.GetResponse();

        string text;

        using (var sr = new StreamReader(response.GetResponseStream()))
        {
            text = sr.ReadToEnd();
            values.Add(text);
        }

最佳答案

我修改了第一个以根据 http://msdn.microsoft.com/en-us/library/debx8sh9(v=vs.110).aspx 将数据写入请求流, 这行得通吗:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(baseurl);
request.Method = "POST";
request.Accept = "application/json";
request.Credentials = new NetworkCredential(username, password);
request.UserAgent = "curl/7.37.0";
request.ContentType = "application/x-www-form-urlencoded";

using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
    string data = "browser=Win7x64-C1|Chrome32|1024x768&url=http://www.google.com";

    streamWriter.Write(data);
}

var response = request.GetResponse();
string text;

using (var sr = new StreamReader(response.GetResponseStream()))
{
    text = sr.ReadToEnd();
    values.Add(text);
}

关于c# - 将 CURL 转换为 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25306570/

相关文章:

c++ - IHttpRequest 响应长度限制

php - 尝试在 Facebook 应用程序中提交表单时出现 HTTP 404 错误

javascript - 如何在新窗口中打开页面,而不是在同一窗口中及其新选项卡上打开页面?

c# - yield 返回与返回选择

c# - 遍历树结构

java - 如何在java中进行批量http调用

http - 是否有任何 http 自动化工具/库可以直接执行 http 请求而不是自动化浏览器?

javascript - Firebase REST API - 如何设置字符编码?

c# - 我们可以在 TPL 中按名称或 ID 读取正在运行的任务数吗?

c# - Mono 不支持 System.Runtime.Serialization.DataMemberAttribute EmitDefaultValue 设置