将旋度转换为C#

将旋度转换为C#,c#,http,post,curl,C#,Http,Post,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/ 这就是我到目前为止所做的:

我花了很长时间尝试各种不同的方法将这个旋度转换成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);
        }
列表数据=新列表();
添加(“浏览器=Win7x64-C1 |色度20 | 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=新的网络凭据(用户名、密码);
使用(var writer=newstreamwriter(request.GetRequestStream()))
{
writer.Write(“数据=”+数据);
}
var response=request.GetResponse();
字符串文本;
使用(var sr=newstreamreader(response.GetResponseStream())
{
text=sr.ReadToEnd();
添加(文本);
}

我修改了第一个,将数据写入请求流,如下所示:

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);
}

刚刚实现了一个实验,使用Roslyn将curl命令转换成C代码

请试一试:

别忘了将数据写入请求流。请您发布一个如何执行的示例。这对我来说是新的。谢谢,这是或的复制品吗?不幸的是,这不起作用。仍然从服务器获取错误500。旋度有效,但c#方法无效。有什么想法吗?我已经根据API文档将答案更改为使用JSON,您可以再试一次吗?仍然返回错误500内部服务器错误不幸:(我创建了一个要调试的帐户,请求数据必须是表单格式,并且需要设置UserAgent。为了测试,我使用了cURL user agent。我猜API毕竟仍处于测试阶段!您需要在request.ContentType行之后添加一个NameValueCollection。如下所示:
NameValueCollection collection=newNameValueCollection()
collection.Add(“用户名”,值);
collection.Add(“密码”,值);
request.Headers.Add(集合);