简体   繁体   English

将一段CURL转换为C#的问题

[英]Issues with converting a piece of CURL to C#

This CURL works: 此CURL可以工作:

curl -H "X-Auth-User: bryanoliver" -H "X-Auth-Expires: 1406485297" -H "X-Auth-Key: 946ddd08f5fbcb3ddb0c91e3785f0630" "-H" "Accept: application/xml" "https://cloud.technologies.com/api/jobs/1"

This C# fails not sure what I have missed: 此C#无法确定我错过了什么:

System.Net.WebRequest request = WebRequest.Create("https://cloud.technologies.com/api/jobs/1");
request.ContentType = "Accept: application/xml";
request.Method = "POST";
request.Headers["X-Auth-User"] = "bryanoliver";
request.Headers["X-Auth-Expires"] = "1406485297";
request.Headers["X-Auth-Key"] = "946ddd08f5fbcb3ddb0c91e3785f0630";
string result = System.Convert.ToBase64String(buffer);
Stream reqstr = request.GetRequestStream();
reqstr.Write(buffer, 0, buffer.Length);
reqstr.Close();

WebResponse response = request.GetResponse();

I resolved this with the following 我用以下解决了这个问题

public static void ElementalGetRequest(String url, String md5url, String elementalUser, String elementalApiKey, out String Result)
{

    TimeSpan t = (DateTime.UtcNow.AddSeconds(30) - new DateTime(1970, 1, 1));
    int timestamp = (int)t.TotalSeconds;

    string hash = CalculateMD5Hash(elementalApiKey + (CalculateMD5Hash(md5url + elementalUser + elementalApiKey + Convert.ToString(timestamp))));

    var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
    httpWebRequest.ContentType = "application/xml";
    httpWebRequest.Accept = "application/xml";
    httpWebRequest.Method = "POST";
    httpWebRequest.Headers.Add("X-Auth-User: "+elementalUser);
    httpWebRequest.Headers.Add("X-Auth-Expires: " + Convert.ToString(timestamp));
    httpWebRequest.Headers.Add("X-Auth-Key: " + hash);

    WebResponse response = httpWebRequest.GetResponse();
    Stream dataStream = response.GetResponseStream();

    StreamReader reader = new StreamReader(dataStream);

    string serverResponse = reader.ReadToEnd();
    reader.Close();
    dataStream.Close();
    response.Close();
    Result = serverResponse;

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM