CURL --data-binary 到 C# HttpWebrequest
CURL --data-binary to C# HttpWebrequest
我有以下 curl 请求,我想将其转换为 C# 代码。我只是不确定 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";
如果您需要更多信息,我可以提供。谢谢。
我专注于搜索 conversion/equivalent 的 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();
我的想法是从这个 post 中得到的,并根据我的要求做了一些修改:
我有以下 curl 请求,我想将其转换为 C# 代码。我只是不确定 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";
如果您需要更多信息,我可以提供。谢谢。
我专注于搜索 conversion/equivalent 的 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();
我的想法是从这个 post 中得到的,并根据我的要求做了一些修改: