【发布时间】:2012-02-01 04:34:08
【问题描述】:
我正在使用一个使用基本身份验证并返回一个 XML 字符串的 REST Web 服务。这是我用来获取数据并将其作为 XDocument 返回的方法:
var req = (HttpWebRequest)WebRequest.Create(uri);
String readToEnd;
const string postData = "";
var encoding = new ASCIIEncoding();
byte[] byte1 = encoding.GetBytes(postData);
req.Method = "POST";
req.Timeout = 10000;
req.ContentType = "text/XML";
req.ContentLength = byte1.Length;
string authInfo = userName + ":" + password;
authInfo = Convert.ToBase64String(Encoding.UTF8.GetBytes(authInfo));
req.Headers["Authorization"] = "Basic " + authInfo;
var newStream = req.GetRequestStream();
newStream.Write(byte1, 0, byte1.Length);
newStream.Close();
try
{
var resp = req.GetResponse();
var answer = resp.GetResponseStream();
var _answer = new StreamReader(answer);
readToEnd = _answer.ReadToEnd();
answer.Close();
}
catch (Exception ex)
{
readToEnd = null;
}
return readToEnd != null ? XDocument.Parse(readToEnd) : null;
现在稍后,我已经操作了那个 xml,我准备将它发布回另一个 uri。我认为这将是相同的代码,除了可能将我的新 XML 字符串放入变量“postData”中?
这是将 xml 字符串发布到 Web 服务的正确方法吗?当使用基本授权时,我已经看过但似乎无法对此有所了解。
【问题讨论】:
-
请参阅有关签名问题的常见问题解答。
-
您未能说明您遇到的实际问题。请详细说明。
-
好的,希望我解决了你的两个问题。
-
您是否有理由担心 REST 管道自己而不是使用像 RestSharp 这样可以为您解决问题的库?
-
好吧,我不知道 RestSharp 存在。我会检查一下。但我想知道如何做管道,以防我的公司不让我使用第 3 方 dll。
标签: c# xml web-services rest