【问题标题】:CURL --data-binary to C# HttpWebrequestCURL --data-binary 到 C# HttpWebrequest
【发布时间】:2019-02-16 15:51:40
【问题描述】:

我有以下想要转换为 C# 代码的 curl 请求。我只是不确定 HttpWebRequest 中“--data-binary”的等价物是什么。

curl -s -H "Content-Type:application/xml" -X POST --data-binary @C:\path\to\file.xml "https://somerestURL?create"

到目前为止,以下是我的代码:

var xmlFile = "C:\\path\\to\\file.xml";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
NetworkCredential cred = new NetworkCredential(uname, cipher);
CredentialCache cache = new CredentialCache { { url, "Basic", cred } };
request.PreAuthenticate = true;
request.Credentials = cache;
request.Method = "POST";
request.ContentType = "application/xml";

如果您需要更多信息,我可以提供。谢谢。

【问题讨论】:

    标签: c# rest curl post httpwebrequest


    【解决方案1】:

    我专注于搜索 curl 到 c# 代码的转换/等效,但它没有让我走运。 所以,我研究了 XML POSTING,下面是我的工作代码。

            // initiate xml 
            XmlDocument xml = new XmlDocument();
            xml.Load(xmlFile);
            byte[] bytes = Encoding.ASCII.GetBytes(xml.InnerXml);
    
            // setup request
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            NetworkCredential cred = new NetworkCredential(uname, cipher);
            CredentialCache cache = new CredentialCache { { url, "Basic", cred } };
            request.PreAuthenticate = true;
            request.Credentials = cache;
            request.Method = "POST";
            request.ContentType = "application/xml; encoding='utf-8'";
            request.ContentLength = bytes.Length;
    
            // stream
            Stream requestStream = request.GetRequestStream();
            requestStream.Write(bytes, 0, bytes.Length);
            requestStream.Close();
    
            // response        
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream responseStream = response.GetResponseStream();
            StreamReader readStream = new StreamReader(responseStream, Encoding.Default);
            var xmlResponse = readStream.ReadToEnd();
    

    我从这篇文章中得到了我的想法,并根据我的要求进行了一些更改: HTTP post XML data in C#

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      • 2019-01-17
      • 2015-01-16
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多